27 lines
693 B
Go
27 lines
693 B
Go
|
package database
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
gormsessions "github.com/gin-contrib/sessions/gorm"
|
||
|
"github.com/spf13/viper"
|
||
|
"gorm.io/driver/postgres"
|
||
|
"gorm.io/gorm"
|
||
|
"log"
|
||
|
)
|
||
|
|
||
|
var DB *gorm.DB
|
||
|
var SessionStore gormsessions.Store
|
||
|
|
||
|
func Connect() {
|
||
|
dsn := fmt.Sprintf("host=%s user=%s password=%s dbname=%s port=%d sslmode=disable",
|
||
|
viper.Get("database.ip"), viper.Get("database.user"),
|
||
|
viper.Get("database.password"), viper.Get("database.name"),
|
||
|
viper.Get("database.port"))
|
||
|
db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})
|
||
|
if err != nil {
|
||
|
log.Fatalf("Can't connect to DB: %v", err)
|
||
|
}
|
||
|
DB = db
|
||
|
SessionStore = gormsessions.NewStore(db, true, []byte(viper.GetString("sessionsecret")))
|
||
|
}
|