53 lines
1.3 KiB
Go
53 lines
1.3 KiB
Go
package shared
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
|
|
"github.com/jinzhu/gorm"
|
|
_ "github.com/jinzhu/gorm/dialects/postgres"
|
|
"gitlab.com/pactual1/backend/config"
|
|
"gitlab.com/pactual1/backend/models"
|
|
)
|
|
|
|
var db *gorm.DB
|
|
|
|
func Init() error {
|
|
host := config.AppConfig.Database.HostName
|
|
user := config.AppConfig.Database.UserName
|
|
// port := config.AppConfig.Database.Port
|
|
dbName := config.AppConfig.Database.DatabaseName
|
|
password := config.AppConfig.Database.Password
|
|
|
|
dbString := fmt.Sprintf("host=%s user=%s dbname=%s sslmode=disable password=%s", host, user, dbName, password)
|
|
// db, err = gorm.Open("postgres", "host=localhost user=postgres dbname=postgres sslmode=disable password=root")
|
|
var err error
|
|
|
|
// //PostgreSQL
|
|
db, err = gorm.Open("postgres", dbString)
|
|
|
|
db.LogMode(true)
|
|
|
|
if err != nil {
|
|
log.Println("Error initializing the database: ", err)
|
|
return err
|
|
}
|
|
|
|
//TODO AUTOMIGRATE models once we have them
|
|
db.AutoMigrate(&models.User{}, &models.Company{}, &models.Device{}, &models.DeviceInfo{},
|
|
&models.Contract{}, &models.ContractInfo{},
|
|
&models.ProductTemplate{}, &models.TextTemplate{}, &models.Invoice{}, &models.InvoiceItem{},
|
|
&models.Notification{}, models.PasswordTokens{}, models.SessionToken{})
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
func GetDb() *gorm.DB {
|
|
return db
|
|
}
|
|
|
|
func CloseDb() {
|
|
db.Close()
|
|
}
|