MetaTube / engine /database.go
henry99a's picture
Clean commit for Hugging Face Spaces without binary files
ca7217f
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
}