1 Star 0 Fork 0

go-libs/db-xorm

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
table.go 2.42 KB
一键复制 编辑 原始数据 按行查看 历史
非一般 提交于 3个月前 . reset generate template
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// Author: wsfuyibing <682805@qq.com>
// Date: 2024-08-02
package base
import (
"html/template"
"sort"
)
// Table
// is a component for table definition (DDL).
type Table struct {
// Normal fields.
Engine string `xorm:"Engine"`
Format string `xorm:"Row_format"`
Name ItemName `xorm:"Name"`
Comment ItemComment `xorm:"Comment"`
Collation ItemCollation `xorm:"Collation"`
// Belongs to.
Columns []*Column `xorm:"-"`
PackageList []string
PackageMapper map[string]bool
// Info fields.
CommentList []template.HTML `xorm:"-"`
Datetime template.HTML `xorm:"-"`
Script template.HTML `xorm:"-"`
// Execution fields.
ConnectionKey string `xorm:"-"`
ModelName string `xorm:"-"`
ModelPkg string `xorm:"-"`
ServiceName string `xorm:"-"`
ServicePkg string `xorm:"-"`
// Primary prop.
PrimaryName string `xorm:"-"`
PrimaryFieldName string `xorm:"-"`
PrimaryType string `xorm:"-"`
// Current timestamp.
CurrentPrimaryKey string `xorm:"-"`
CurrentPrimaryKeyName string `xorm:"-"`
CurrentPrimaryKeyType string `xorm:"-"`
CurrentTimestamps []string `xorm:"-"`
}
func (o *Table) Ready() {
o.CurrentTimestamps = make([]string, 0)
for _, c := range o.Columns {
if c.Key.IsPrimary() && o.CurrentPrimaryKey == "" {
o.CurrentPrimaryKey = c.Field.String()
o.CurrentPrimaryKeyName = c.Field.ToLargeCamel()
o.CurrentPrimaryKeyType = c.ExportType
}
if c.Default.IsCurrentTimestamp() {
o.CurrentTimestamps = append(o.CurrentTimestamps, c.Field.ToLargeCamel())
}
}
}
func (o *Table) Add(pkg string) {
if o.PackageList == nil || o.PackageMapper == nil {
o.PackageList = make([]string, 0)
o.PackageMapper = make(map[string]bool)
}
if _, ok := o.PackageMapper[pkg]; ok {
return
}
o.PackageList = append(o.PackageList, pkg)
o.PackageMapper[pkg] = true
sort.Strings(o.PackageList)
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/go-libs/db-xorm.git
git@gitee.com:go-libs/db-xorm.git
go-libs
db-xorm
db-xorm
v1.2.4

搜索帮助