initial version with fiber and gorm
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
package database
|
||||
|
||||
import (
|
||||
"api/globals"
|
||||
// "api/models"
|
||||
// "api/utils"
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"github.com/joho/godotenv"
|
||||
|
||||
"gorm.io/driver/postgres"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
// Our database
|
||||
var DB *gorm.DB
|
||||
|
||||
// ConnectDB - returns a pointer to a new database connection
|
||||
func ConnectDB() error {
|
||||
var erre error
|
||||
|
||||
log.Println("Getting environment values")
|
||||
erre = godotenv.Load()
|
||||
if erre != nil {
|
||||
log.Printf("Error getting env, not comming through %v\n", erre)
|
||||
return erre
|
||||
}
|
||||
|
||||
globals.API_RELEASE = os.Getenv("API_RELEASE")
|
||||
|
||||
DBURL := fmt.Sprintf("%s://%s:%s@%s:%s/%s", os.Getenv("DB_DRIVER"), os.Getenv("DB_USER"), os.Getenv("DB_PASSWORD"), os.Getenv("DB_HOST"), os.Getenv("DB_PORT"), os.Getenv("DB_NAME"))
|
||||
|
||||
log.Println("Opening connection to database")
|
||||
|
||||
db, err := gorm.Open(postgres.Open(DBURL), &gorm.Config{})
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
log.Println("Migrating database tables")
|
||||
|
||||
// if result := db.AutoMigrate(&models.User{}); result != nil {
|
||||
// return result
|
||||
// }
|
||||
|
||||
// if result := db.AutoMigrate(&models.Event{}); result != nil {
|
||||
// return result
|
||||
// }
|
||||
|
||||
// if result := db.AutoMigrate(&models.Server{}); result != nil {
|
||||
// return result
|
||||
// }
|
||||
|
||||
// Count how many servers we have on the database. If none, creates our initial server.
|
||||
// var servers []models.Server
|
||||
|
||||
// db.Find(&servers)
|
||||
|
||||
// if len(servers) == 0 {
|
||||
// server := models.Server{
|
||||
// Name: "Pcast Main Server",
|
||||
// IP: "177.153.50.98",
|
||||
// }
|
||||
|
||||
// db.Create(&server)
|
||||
// }
|
||||
|
||||
// Count how many users we have on the database. If none, creates our initial admin user.
|
||||
// var users []models.User
|
||||
|
||||
// db.Find(&users)
|
||||
|
||||
// if len(users) == 0 {
|
||||
// passwd, _ := utils.HashPassword("123456")
|
||||
|
||||
// user := models.User{
|
||||
// Name: "Pcast Admin",
|
||||
// Email: "pcast@pcast.com.br",
|
||||
// CompanyName: "PCast",
|
||||
// Password: passwd,
|
||||
// Channel: "PCast",
|
||||
// UserType: "A",
|
||||
// Blocked: "N",
|
||||
// Cancelled: "N",
|
||||
// CreatedBy: "Auto",
|
||||
// }
|
||||
|
||||
// db.Create(&user)
|
||||
// }
|
||||
|
||||
DB = db
|
||||
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user