now has an ORM and saves data (kinda)
This commit is contained in:
56
models/db.go
Normal file
56
models/db.go
Normal file
@@ -0,0 +1,56 @@
|
||||
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() {
|
||||
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
|
||||
}
|
||||
11
models/merp.go
Normal file
11
models/merp.go
Normal file
@@ -0,0 +1,11 @@
|
||||
package models
|
||||
|
||||
import "time"
|
||||
|
||||
type Merp struct {
|
||||
ID int `json:"id" orm:"auto"`
|
||||
Content string `json:"content" orm:"type(json)"`
|
||||
Created time.Time `orm:"auto_now_add;type(datetime)"`
|
||||
RemoteIP string `json:"remoteIP" orm:"size(128)"`
|
||||
Thing string `json:"thing" orm:"size(128)"`
|
||||
}
|
||||
Reference in New Issue
Block a user