package engine import ( "fmt" "github.com/metatube-community/metatube-sdk-go/database" "github.com/metatube-community/metatube-sdk-go/model" ) func (e *Engine) DBAutoMigrate(v bool) error { if !v { return nil } // Create Case-Insensitive Collation for Postgres. if e.DBDriver() == database.Postgres { e.db.Exec(`CREATE COLLATION IF NOT EXISTS NOCASE ( provider = icu, locale = 'und-u-ks-level2', deterministic = FALSE)`) } return e.db.AutoMigrate( &model.MovieInfo{}, &model.ActorInfo{}, &model.MovieReviewInfo{}, ) } func (e *Engine) DBDriver() string { return e.db.Name() } func (e *Engine) DBVersion() (version string, err error) { switch dbType := e.DBDriver(); dbType { case database.Postgres: err = e.db.Raw("SELECT version();").Scan(&version).Error case database.Sqlite: err = e.db.Raw("SELECT sqlite_version();").Scan(&version).Error default: err = fmt.Errorf("unsupported DB type: %s", dbType) } return }