migrate.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. //go:build migrate
  2. package server
  3. import (
  4. "IotAdmin/common/database"
  5. "IotAdmin/core/config/source/file"
  6. "IotAdmin/core/sdk/config"
  7. "IotAdmin/migration"
  8. "fmt"
  9. _ "IotAdmin/migration/version"
  10. _ "IotAdmin/migration/version-local"
  11. "github.com/spf13/pflag"
  12. )
  13. var (
  14. generate = pflag.BoolP("generate", "g", false, "生成迁移文件")
  15. migrateFile = pflag.BoolP("file", "f", false, "生成IotAdmin迁移文件")
  16. domain = pflag.StringP("domain", "d", "*", "选择租户域名")
  17. )
  18. func init() {
  19. if *generate {
  20. fmt.Println(`生成迁移文件`)
  21. } else {
  22. fmt.Println(`开始迁移数据库`)
  23. //1. 读取配置
  24. config.Setup(
  25. file.NewSource(file.WithPath(*configYml)),
  26. database.Setup,
  27. )
  28. }
  29. }
  30. func Init() {
  31. if *generate {
  32. err := migration.GenFile(*migrateFile)
  33. if err != nil {
  34. return
  35. }
  36. } else {
  37. // 数据库迁移
  38. fmt.Println("数据库迁移开始")
  39. err := migration.MigrateModel(*domain)
  40. if err != nil {
  41. fmt.Println(`数据库基础数据初始化失败`, err.Error())
  42. return
  43. }
  44. fmt.Println(`数据库基础数据初始化成功`)
  45. }
  46. }