// Package define ... // // Description : define ... // // Author : go_developer@163.com<白茶清欢> // // Date : 2023-07-29 21:04 package define // Database 数据库的配置 // // Author : go_developer@163.com<白茶清欢> // // Date : 21:04 2023/7/29 type Database struct { Driver string `json:"driver" gorm:"driver" ini:"driver" xml:"driver" yaml:"driver"` // 数据库驱动 : 暂时支持 mysql / sqlite Flag string `json:"flag" gorm:"flag" ini:"flag" xml:"flag" yaml:"flag"` // 数据库标识, 全局唯一 Description string `json:"description" gorm:"description" ini:"description" xml:"description" yaml:"description"` // 数据库描述 Logger *LoggerConfig `json:"logger" gorm:"logger" ini:"logger" xml:"logger" yaml:"logger"` // 日志配置 Config map[string]interface{} `json:"config" gorm:"config" ini:"config" xml:"config" yaml:"config"` // 数据库的配置 TableList []*Table `json:"table_list" gorm:"table_list" ini:"table_list" xml:"table_list" yaml:"table_list"` // 数据表列表 } // Table 数据表结构 // // Author : go_developer@163.com<白茶清欢> // // Date : 16:43 2023/7/30 type Table struct { Name string `json:"name" gorm:"name" ini:"name" xml:"name" yaml:"name"` // 数据表名称 Split bool `json:"split" gorm:"split" ini:"split" xml:"split" yaml:"split"` // 是否分表 SplitCount int64 `json:"split_count" gorm:"split_count" ini:"split_count" xml:"split_count" yaml:"split_count"` // 分表数量 SplitField string `json:"split_field" gorm:"split_field" ini:"split_field" xml:"split_field" yaml:"split_field"` // 分表字段 PrimaryField string `json:"primary_field" gorm:"primary_field" ini:"primary_field" xml:"primary_field" yaml:"primary_field"` // 主键字段 FieldList []*TableField `json:"field_list" gorm:"field_list" ini:"field_list" xml:"field_list" yaml:"field_list"` // 字段列表 } // TableField 数据表字段配置 // // Author : go_developer@163.com<白茶清欢> // // Date : 21:08 2023/7/29 type TableField struct { Description string `json:"description"` // 字段描述 Name string `json:"name"` // 数据表中字段名称 Alias string `json:"alias"` // 字段别名 : 未设置和 Name 保持一致, 设置了将会以此字段值输出 Type string `json:"type"` // 数据类型 : int/uint/bool/float/string/object/array AllowOutput bool `json:"allow_output"` // 是否允许对外输出 DefaultValue interface{} `json:"default_value"` // 针对 INSERT 语句, 在未指定字段值的情况下写入的默认值, 为nil不设置 ValidateRule interface{} `json:"validate_rule"` // 字段验证规则 : 不满足规则直接报错 TODO : 待完成 }