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) } }