47 lines
929 B
Go
47 lines
929 B
Go
package database
|
|
|
|
import (
|
|
"github.com/Caknoooo/go-gin-clean-starter/database/entities"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
func Migrate(db *gorm.DB) error {
|
|
if err := db.AutoMigrate(
|
|
&entities.M_Client{},
|
|
&entities.M_User{},
|
|
&entities.RefreshToken{},
|
|
&entities.M_Menu{},
|
|
&entities.M_MaintenanceGroup{},
|
|
&entities.M_Role{},
|
|
&entities.M_Role_Menu{},
|
|
&entities.M_Permissions{},
|
|
&entities.M_Role_Permission{},
|
|
); err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func MigrateFresh(db *gorm.DB) error {
|
|
// Drop tables
|
|
if err := db.Migrator().DropTable(
|
|
&entities.M_Client{},
|
|
&entities.M_User{},
|
|
&entities.M_Menu{},
|
|
&entities.M_MaintenanceGroup{},
|
|
&entities.M_Role{},
|
|
&entities.M_Role_Menu{},
|
|
&entities.M_Permissions{},
|
|
&entities.M_Role_Permission{},
|
|
&entities.Tenant{},
|
|
&entities.User{},
|
|
&entities.RefreshToken{},
|
|
&entities.Product{},
|
|
); err != nil {
|
|
return err
|
|
}
|
|
// Migrate ulang
|
|
return Migrate(db)
|
|
}
|