switched to gorm..
This commit is contained in:
@@ -1,55 +1,30 @@
|
||||
package database
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"os"
|
||||
|
||||
"GoMembership/internal/config"
|
||||
"GoMembership/internal/models"
|
||||
"GoMembership/pkg/logger"
|
||||
|
||||
"embed"
|
||||
|
||||
_ "github.com/mattn/go-sqlite3"
|
||||
"gorm.io/driver/sqlite"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
//go:embed schema.sql
|
||||
var fs embed.FS
|
||||
// var DB *gorm.DB
|
||||
|
||||
func initializeDB(dbPath string) error {
|
||||
func InitDB(dbPath string) (*gorm.DB, error) {
|
||||
|
||||
db, err := sql.Open("sqlite3", dbPath)
|
||||
db, err := gorm.Open(sqlite.Open(dbPath), &gorm.Config{})
|
||||
if err != nil {
|
||||
return err
|
||||
return nil, err
|
||||
}
|
||||
defer db.Close()
|
||||
|
||||
schema, err := fs.ReadFile("schema.sql")
|
||||
if err != nil {
|
||||
return err
|
||||
if err := db.AutoMigrate(
|
||||
&models.User{},
|
||||
&models.SubscriptionModel{},
|
||||
&models.Membership{},
|
||||
&models.Consent{},
|
||||
&models.Verification{},
|
||||
&models.BankAccount{}); err != nil {
|
||||
logger.Error.Fatalf("Couldn't create database: %v", err)
|
||||
return nil, err
|
||||
}
|
||||
_, err = db.Exec(string(schema))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func Connect(DBcfg config.DatabaseConfig) *sql.DB {
|
||||
_, err := os.Stat(DBcfg.DBPath)
|
||||
if os.IsNotExist(err) {
|
||||
initErr := initializeDB(DBcfg.DBPath)
|
||||
if initErr != nil {
|
||||
logger.Error.Fatalf("Couldn't create database: %v", initErr)
|
||||
}
|
||||
logger.Info.Println("Created new database")
|
||||
}
|
||||
|
||||
db, err := sql.Open("sqlite3", DBcfg.DBPath)
|
||||
if err != nil {
|
||||
logger.Error.Fatal(err)
|
||||
}
|
||||
if err := db.Ping(); err != nil {
|
||||
logger.Error.Fatal(err)
|
||||
}
|
||||
return db
|
||||
// DB = db
|
||||
return db, nil
|
||||
}
|
||||
|
||||
@@ -48,9 +48,8 @@ CREATE TABLE membership_plans (
|
||||
monthly_fee DECIMAL(10, 2),
|
||||
hourly_rate DECIMAL(10, 2),
|
||||
included_hours_per_year INT,
|
||||
remaining_hours_per_year INT,
|
||||
included_hours_per_month INT,
|
||||
remaining_hours_per_month INT,
|
||||
conditions TEXT,
|
||||
details TEXT
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user