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 }