package models import "os" import "time" import "github.com/astaxie/beego/orm" import "github.com/rs/zerolog/log" import _ "github.com/lib/pq" var ormObject orm.Ormer func Initialize() { if os.Getenv("DEBUG") != "" { orm.Debug = true } ConnectToDb() SyncDB() } // ConnectToDb - Initializes the ORM and Connection to the postgres DB func ConnectToDb() { orm.DefaultTimeLoc = time.UTC POSTGRES_DB_URL := os.Getenv("POSTGRES_DB_URL") orm.RegisterDriver("postgres", orm.DRPostgres) orm.RegisterDataBase("default", "postgres", POSTGRES_DB_URL) orm.SetMaxIdleConns("default", 1) orm.SetMaxOpenConns("default", 5) orm.RegisterModel(new(Merp)) ormObject = orm.NewOrm() ormObject.Using("default") } func SyncDB() { // Database alias. name := "default" // Drop table and re-create. force := false // Print log. verbose := true // Error. err := orm.RunSyncdb(name, force, verbose) if err != nil { log.Fatal().Msg(err.Error()) } } // GetOrmObject - Getter function for the ORM object with which we can query the database func GetOrmObject() orm.Ormer { if ormObject == nil { Initialize() } return ormObject }