43 lines
809 B
Go
43 lines
809 B
Go
package model
|
|
|
|
import (
|
|
"os"
|
|
|
|
_ "github.com/go-sql-driver/mysql"
|
|
"go.uber.org/zap"
|
|
"xorm.io/xorm"
|
|
"xorm.io/xorm/dialects"
|
|
|
|
"data_minio/global"
|
|
)
|
|
|
|
type Statistics struct {
|
|
Total int64
|
|
}
|
|
|
|
func New(driveName, dsn string, showSql bool) (db *xorm.Engine) {
|
|
db, _ = NewDbConnection(driveName, dsn)
|
|
db.ShowSQL(showSql)
|
|
db.Dialect().SetQuotePolicy(dialects.QuotePolicyReserved)
|
|
err := db.Sync2(
|
|
&Dataset{},
|
|
&DatasetDetail{},
|
|
&FileManager{},
|
|
)
|
|
if err != nil {
|
|
global.Logger.Error("同步数据库表结构", zap.Error(err))
|
|
os.Exit(1)
|
|
}
|
|
return db
|
|
}
|
|
|
|
func NewDbConnection(driveName, dsn string) (db *xorm.Engine, err error) {
|
|
db, err = xorm.NewEngine(driveName, dsn)
|
|
if err != nil {
|
|
zap.L().Error("创建数据库连接", zap.Error(err))
|
|
os.Exit(-1)
|
|
}
|
|
db.SetMaxOpenConns(300)
|
|
return
|
|
}
|