24 lines
436 B
Go
24 lines
436 B
Go
|
package database
|
||
|
|
||
|
import (
|
||
|
"gorm.io/driver/postgres"
|
||
|
"gorm.io/gorm"
|
||
|
"log"
|
||
|
"milelogistic-server/core/internal/config"
|
||
|
)
|
||
|
|
||
|
var instance *gorm.DB = nil
|
||
|
|
||
|
func New() *gorm.DB {
|
||
|
if instance != nil {
|
||
|
return instance
|
||
|
}
|
||
|
cfg := config.New()
|
||
|
db, err := gorm.Open(postgres.Open(cfg.PostgresDsn), &gorm.Config{})
|
||
|
if err != nil {
|
||
|
log.Fatalf("Cannot connect to postgres with DSN: %s", cfg.PostgresDsn)
|
||
|
}
|
||
|
instance = db
|
||
|
return instance
|
||
|
}
|