refactor: add prod mod

This commit is contained in:
Liangzhao Che 2023-06-01 20:25:38 +08:00
parent 49a21a0449
commit d37f178ddd

View File

@ -5,15 +5,24 @@ import (
"bill-go-fiber/internal/label" "bill-go-fiber/internal/label"
"gorm.io/driver/sqlite" "gorm.io/driver/sqlite"
"gorm.io/gorm" "gorm.io/gorm"
"log"
"os" "os"
) )
func ConnectToSqlite() (*gorm.DB, error) { func ConnectToSqlite() (*gorm.DB, error) {
dsn := "bill.db" var dsn string
//dsn := "file::memory:?cache=shared" switch os.Getenv("ENV") {
case "prod":
dsn = "bill.db"
default:
dsn = "file::memory:?cache=shared"
}
db, err := gorm.Open(sqlite.Open(dsn), &gorm.Config{}) db, err := gorm.Open(sqlite.Open(dsn), &gorm.Config{})
if err != nil { if err != nil {
panic("failed to connect database.\n") panic("failed to connect database.\n")
} else {
log.Println("Connecting to sqlite.")
} }
err = db.AutoMigrate(&label.Label{}) err = db.AutoMigrate(&label.Label{})
@ -26,13 +35,20 @@ func ConnectToSqlite() (*gorm.DB, error) {
} }
// migrate data // migrate data
go func() { if os.Getenv("ENV") != "prod" {
sql, err := os.ReadFile("scripts/sqliteMigrations.sql") go func() {
if err != nil { sql, err := os.ReadFile("scripts/sqliteMigrations.sql")
panic("failed to read migration sql file: " + err.Error()) if err != nil {
} //panic("failed to read migration sql file: " + err.Error())
db.Exec(string(sql)) log.Fatal("failed to read migration sql file: " + err.Error())
}() }
res := db.Exec(string(sql))
if res.Error != nil {
log.Fatal("failed to migrate" + res.Error.Error())
}
log.Println("SQL migrated successfully!")
}()
}
return db, nil return db, nil
} }