package tables import ( "time" "git.x2erp.com/qdy/go-db/sqldef" ) func init() { sqldef.AddRegistration(func(r *sqldef.Registry) { // 配置元信息表 tb := sqldef.NewTable("config_meta", "配置元信息表"). ID("id", 128).NotNull().Comment("主键").End(). String("config_name", 48).NotNull().Comment("配置名称").End(). String("field_name", 48).NotNull().Default("''").Comment("属性名称").End(). String("field_type", 32).NotNull().Default("'config'").Comment("字段类型:config/string/bool/int...").End(). String("yaml_name", 128).NotNull().Default("''").Comment("YAML标签").End(). String("field_desc", 256).NotNull().Default("''").Comment("字段描述").End(). String("creator", 32).NotNull().Comment("创建人").End(). DateTime("created_at").NotNull().Default("CURRENT_TIMESTAMP").Comment("创建时间").End() // 添加索引 tb.AddIndex("idx_config_name", "config_name") tb.AddIndex("idx_yaml_name", "yaml_name") tb.AddIndex("idx_field_name", "field_name") // 注册表 r.RegisterTable(tb.Build()) }) } // ConfigMeta 配置元信息表结构体 type ConfigMeta struct { // 配置名称 ConfigName string `gorm:"column:config_name;type:varchar(48);not null;primaryKey;comment:配置名称"` // 字段名称 FieldName string `gorm:"column:field_name;type:varchar(48);not null;primaryKey;comment:属性名称"` // 字段类型 FieldType string `gorm:"column:field_type;type:varchar(50);not null;default:'config';comment:字段类型"` // YAML标签 YamlName string `gorm:"column:yaml_name;type:varchar(128);not null;default:'';comment:YAML标签"` // 字段描述 FieldDesc string `gorm:"column:field_desc;type:varchar(500);not null;default:'';comment:字段描述"` // 创建人 Creator string `gorm:"column:creator;type:varchar(32);not null;comment:创建人"` // 创建时间 CreatedAt time.Time `gorm:"column:created_at;not null;default:CURRENT_TIMESTAMP;comment:创建时间"` } // ConfigMetaDB 数据库表结构体 type ConfigMetaDB struct { ID string `db:"id" json:"id"` ConfigName string `db:"config_name" json:"configName"` FieldName string `db:"field_name" json:"fieldName"` FieldType string `db:"field_type" json:"fieldType"` YamlName string `db:"yaml_name" json:"yamlName"` FieldDesc string `db:"field_desc" json:"fieldDesc"` Creator string `db:"creator" json:"creator"` CreatedAt time.Time `db:"created_at" json:"createdAt"` } // TableName 指定表名 func (ConfigMeta) TableName() string { return "config_meta" }