init_db.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package utils
  2. import (
  3. "database/sql"
  4. "github.com/spf13/viper"
  5. )
  6. //@author: [songzhibin97](https://github.com/songzhibin97)
  7. //@function: CreateTable
  8. //@description: 创建数据库(mysql)
  9. //@param: dsn string, driver string, createSql
  10. //@return: error
  11. func CreateTable(dsn string, driver string, createSql string) error {
  12. db, err := sql.Open(driver, dsn)
  13. if err != nil {
  14. return err
  15. }
  16. defer db.Close()
  17. if err = db.Ping(); err != nil {
  18. return err
  19. }
  20. _, err = db.Exec(createSql)
  21. return err
  22. }
  23. //@author: [songzhibin97](https://github.com/songzhibin97)
  24. //@function: WriteConfig
  25. //@description: 回写配置
  26. //@param:
  27. //@return: error
  28. func WriteConfig(viper *viper.Viper, conf map[string]interface{}) error {
  29. for k, v := range conf {
  30. viper.Set(k, v)
  31. }
  32. return viper.WriteConfig()
  33. }
  34. //@author: [Songzhibin97](https://github.com/Songzhibin97)
  35. //@function: InitDB
  36. //@description: 初始化db
  37. //@param:
  38. //@return: error
  39. func InitDB() {
  40. Mysql.CheckDatabase()
  41. Mysql.CheckUtf8mb4()
  42. Mysql.Info()
  43. Mysql.Init()
  44. Mysql.AutoMigrateTables()
  45. Mysql.InitData()
  46. }