暫無描述
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

config_environment.go 2.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package tables
  2. import (
  3. "fmt"
  4. "time"
  5. "git.x2erp.com/qdy/go-db/sqldef"
  6. )
  7. func init() {
  8. sqldef.AddRegistration(func(r *sqldef.Registry) {
  9. // 环境表
  10. tb := sqldef.NewTable("config_environment", "环境表").
  11. ID("config_environment_id", 8).NotNull().Comment("环境编码,主键").End().
  12. String("env_name", 64).NotNull().Comment("环境名称").End().
  13. String("description", 64).Comment("环境描述").End().
  14. String("creator", 32).NotNull().Comment("创建人").End().
  15. DateTime("created_at").NotNull().Default("CURRENT_TIMESTAMP").Comment("创建时间").End().
  16. DateTime("updated_at").Default("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP").Comment("更新时间").End()
  17. // 注册表
  18. r.RegisterTable(tb.Build())
  19. })
  20. }
  21. // ConfigEnvironment 环境表结构体
  22. type ConfigEnvironment struct {
  23. // 环境编码,主键
  24. ConfigEnvironmentID string `gorm:"column:config_environment_id;type:varchar(8);primaryKey;not null;comment:环境编码,主键"`
  25. // 环境名称
  26. EnvName string `gorm:"column:env_name;type:varchar(64);not null;comment:环境名称"`
  27. // 环境描述
  28. Description *string `gorm:"column:description;type:varchar(64);comment:环境描述"`
  29. // 创建人
  30. Creator string `gorm:"column:creator;type:varchar(32);not null;comment:创建人"`
  31. // 创建时间
  32. CreatedAt time.Time `gorm:"column:created_at;not null;default:CURRENT_TIMESTAMP;comment:创建时间"`
  33. // 更新时间
  34. UpdatedAt *time.Time `gorm:"column:updated_at;default:CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;comment:更新时间"`
  35. }
  36. // TableName 指定表名
  37. func (ConfigEnvironment) TableName() string {
  38. return "config_environment"
  39. }
  40. // GetDefaultDataSQL 获取环境表默认数据的SQL语句(PostgreSQL版本)
  41. func GetDefaultDataSQL() []string {
  42. now := time.Now().Format("2006-01-02 15:04:05")
  43. return []string{
  44. // 清空表数据(可选,根据需要决定是否包含)
  45. // "TRUNCATE TABLE config_environment RESTART IDENTITY;",
  46. // 单条SQL插入所有数据(PostgreSQL多行插入)
  47. fmt.Sprintf(`INSERT INTO config_environment
  48. (config_environment_id, env_name, description, creator, created_at, updated_at)
  49. VALUES
  50. ('dev', '开发环境', '用于开发人员本地开发和调试的环境', 'system', '%s', '%s'),
  51. ('test', '测试环境', '用于功能测试、集成测试的环境', 'system', '%s', '%s'),
  52. ('pre', '预发布环境', '用于生产前最后验证的环境,与生产环境配置一致', 'system', '%s', '%s'),
  53. ('prod', '生产环境', '正式对外提供服务的生产环境', 'system', '%s', '%s'),
  54. ('demo', '演示环境', '用于产品演示和客户体验的环境', 'system', '%s', '%s')
  55. ON CONFLICT (config_environment_id) DO UPDATE SET
  56. env_name = EXCLUDED.env_name,
  57. description = EXCLUDED.description,
  58. creator = EXCLUDED.creator,
  59. updated_at = EXCLUDED.updated_at;`,
  60. now, now, // dev
  61. now, now, // test
  62. now, now, // pre
  63. now, now, // prod
  64. now, now, // demo
  65. ),
  66. }
  67. }