feat: support create database via cmd line (#417)

This commit is contained in:
Товарищ программист
2022-01-13 11:35:13 +08:00
committed by GitHub
parent 728fe11a3c
commit 8d54bfad8a
3 changed files with 23 additions and 5 deletions

View File

@ -35,11 +35,15 @@ func InitConfig() {
panic(err)
}
InitAdapter()
InitAdapter(true)
}
func InitAdapter() {
func InitAdapter(createDatabase bool) {
adapter = NewAdapter(beego.AppConfig.String("driverName"), conf.GetBeegoConfDataSourceName(), beego.AppConfig.String("dbName"))
if createDatabase {
adapter.CreateDatabase()
}
adapter.createTable()
}
@ -75,6 +79,17 @@ func NewAdapter(driverName string, dataSourceName string, dbName string) *Adapte
return a
}
func (a *Adapter) CreateDatabase() error {
engine, err := xorm.NewEngine(a.driverName, a.dataSourceName)
if err != nil {
return err
}
defer engine.Close()
_, err = engine.Exec(fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s default charset utf8 COLLATE utf8_general_ci", a.dbName))
return err
}
func (a *Adapter) open() {
dataSourceName := a.dataSourceName + a.dbName
if a.driverName != "mysql" {