Hub-Api/database/db.go

77 lines
1.3 KiB
Go

package database
import (
"fmt"
"netina/models"
"os"
"strconv"
"github.com/joho/godotenv"
"gorm.io/driver/postgres"
"gorm.io/gorm"
)
func Db() gorm.DB {
err := godotenv.Load("./config/.env")
if err != nil {
panic(err)
}
host := os.Getenv("DB_HOST")
port, err := strconv.Atoi(os.Getenv("DB_PORT"))
if err != nil {
fmt.Println(os.Getenv("DB_PORT"))
panic(err)
}
user := os.Getenv("DB_USER")
password := os.Getenv("DB_PASSWORD")
dbname := os.Getenv("DB_NAME")
dbc := fmt.Sprintf("host=%s port=%d user=%s "+
"password=%s dbname=%s sslmode=disable",
host, port, user, password, dbname)
db, err := gorm.Open(postgres.Open(dbc), &gorm.Config{})
if err != nil {
panic(err)
}
return *db
}
func Create_tables()error{
db := Db()
err := db.AutoMigrate(&models.Owner{})
if err != nil {
return err
}
err = db.AutoMigrate(&models.Store{})
if err != nil {
return err
}
err = db.AutoMigrate(&models.License{})
if err != nil {
return err
}
err = db.AutoMigrate(&models.Plan{})
if err != nil {
return err
}
err = db.AutoMigrate(&models.User{})
if err != nil {
return err
}
err = db.AutoMigrate(&models.Role{})
if err != nil {
return err
}
err = db.AutoMigrate(&models.LoginCode{})
if err != nil {
return err
}
return nil
}