2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-04 14:57:16 +08:00
Files
panel/internal/bootstrap/db.go
2024-11-27 03:48:43 +08:00

36 lines
954 B
Go

package bootstrap
import (
"log"
"path/filepath"
"github.com/glebarez/sqlite"
"github.com/go-gormigrate/gormigrate/v2"
slogGorm "github.com/orandin/slog-gorm"
"gorm.io/gorm"
"github.com/TheTNB/panel/internal/app"
"github.com/TheTNB/panel/internal/migration"
)
func initOrm() {
db, err := gorm.Open(sqlite.Open(filepath.Join(app.Root, "panel/storage/app.db")), &gorm.Config{
Logger: slogGorm.New(slogGorm.WithHandler(app.Logger.Handler())),
SkipDefaultTransaction: true,
DisableForeignKeyConstraintWhenMigrating: true,
})
if err != nil {
log.Fatalf("failed to connect database: %v", err)
}
app.Orm = db
}
func runMigrate() {
migrator := gormigrate.New(app.Orm, &gormigrate.Options{
UseTransaction: true, // Note: MySQL not support DDL transaction
}, migration.Migrations)
if err := migrator.Migrate(); err != nil {
log.Fatalf("failed to migrate database: %v", err)
}
}