package service import ( "code.icod.de/auth/accountserver/configuration" "code.icod.de/auth/accountserver/ent" "context" "database/sql" "entgo.io/ent/dialect" entsql "entgo.io/ent/dialect/sql" "log" ) type Service struct { client *ent.Client } func NewService() *Service { s := new(Service) return s } func (s *Service) Connect() { s.client = open(configuration.GetDatabaseConnectionString()) } func (s *Service) Close() error { return s.client.Close() } func (s *Service) CreateSchema() error { return s.client.Schema.Create(context.Background()) } // open new connection func open(databaseUrl string) *ent.Client { db, err := sql.Open("pgx", databaseUrl) if err != nil { log.Fatal(err) } // Create an ent.Driver from `db`. drv := entsql.OpenDB(dialect.Postgres, db) return ent.NewClient(ent.Driver(drv)) }