pejhancctv/database/psql.go

111 lines
1.8 KiB
Go

package database
import (
"fmt"
"os"
"strconv"
models "app/models"
"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() {
db := Db()
err := db.AutoMigrate(&models.User{})
if err != nil {
panic(err)
}
err = db.AutoMigrate(&models.Address{})
if err != nil {
panic(err)
}
err = db.AutoMigrate(&models.Phone{})
if err != nil {
panic(err)
}
err = db.AutoMigrate(models.Product{})
if err != nil {
panic(err)
}
err = db.AutoMigrate(&models.Order{})
if err != nil {
panic(err)
}
err = db.AutoMigrate(models.Specs{})
if err != nil {
panic(err)
}
err = db.AutoMigrate(&models.Comment{})
if err != nil {
panic(err)
}
err = db.AutoMigrate(&models.Wishlist{})
if err != nil {
panic(err)
}
err = db.AutoMigrate(&models.Order_products{})
if err != nil {
panic(err)
}
err = db.AutoMigrate(&models.Images{})
if err != nil {
panic(err)
}
err = db.AutoMigrate(&models.Jwt{})
if err != nil {
panic(err)
}
err = db.AutoMigrate(&models.Carts{})
if err != nil {
panic(err)
}
err = db.AutoMigrate(&models.Cart_items{})
if err != nil {
panic(err)
}
err = db.AutoMigrate(&models.PriceHistory{})
if err != nil {
panic(err)
}
}