42 lines
721 B
Go
42 lines
721 B
Go
package db
|
|
|
|
import (
|
|
"context"
|
|
"log"
|
|
|
|
"code.gurenya.net/carlsmei/muninn-aio/config"
|
|
"code.gurenya.net/carlsmei/muninn-aio/ent"
|
|
)
|
|
|
|
var (
|
|
entClient *ent.Client
|
|
)
|
|
|
|
func GetEntClient() *ent.Client {
|
|
return entClient
|
|
}
|
|
|
|
func SetEntClient(new *ent.Client) {
|
|
entClient = new
|
|
}
|
|
|
|
func EntInit() {
|
|
driver := config.Env.DBType
|
|
dsn := config.Env.DBDSN
|
|
|
|
if driver != "sqlite3" && driver != "pq" && driver != "mysql" {
|
|
panic("unsupported driver")
|
|
}
|
|
|
|
client, err := ent.Open(driver, dsn)
|
|
if err != nil {
|
|
log.Fatalf("failed opening connection to sqlite: %v", err)
|
|
}
|
|
|
|
if err := client.Schema.Create(context.Background()); err != nil {
|
|
log.Fatalf("failed creating schema resources: %v", err)
|
|
}
|
|
|
|
entClient = client
|
|
}
|