102 lines
3.0 KiB
Go
102 lines
3.0 KiB
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_Role{},
|
|
&entities.M_Permissions{},
|
|
&entities.M_User_Role{},
|
|
&entities.M_Role_Menu{},
|
|
&entities.M_Menu_Client{},
|
|
&entities.M_Role_Permission{},
|
|
&entities.M_MaintenanceGroup{},
|
|
&entities.M_MaintenanceGroupRole{},
|
|
&entities.M_MaintenanceGroupRoleUser{},
|
|
&entities.MProductEntity{},
|
|
&entities.MCategoryEntity{},
|
|
&entities.MUomEntity{},
|
|
&entities.MVendorEntity{},
|
|
&entities.MCrossReferenceEntity{},
|
|
&entities.MWarehouseEntity{},
|
|
&entities.MZonaEntity{},
|
|
&entities.MAisleEntity{},
|
|
&entities.MUserWarehouseEntity{},
|
|
&entities.TAssignmentEntity{},
|
|
&entities.TAssignmentUserEntity{},
|
|
&entities.TInventoryReceiptEntity{},
|
|
&entities.TInventoryReceiptLineEntity{},
|
|
&entities.TInventoryRequestEntity{},
|
|
&entities.TInventoryRequestLineEntity{},
|
|
&entities.TInventoryIssueEntity{},
|
|
&entities.TInventoryIssueLineEntity{},
|
|
&entities.TInventoryReturnEntity{},
|
|
&entities.TInventoryReturnLineEntity{},
|
|
&entities.InventoryTransactionEntity{},
|
|
&entities.InventoryStorageEntity{},
|
|
&entities.TInventoryMovementEntity{},
|
|
&entities.TInventoryMovementLineEntity{},
|
|
&entities.TInventoryQuarantineEntity{},
|
|
&entities.TInventoryQuarantineLineEntity{},
|
|
); 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.RefreshToken{},
|
|
// &entities.M_Menu{},
|
|
// &entities.M_Role{},
|
|
// &entities.M_Permissions{},
|
|
// &entities.M_User_Role{},
|
|
// &entities.M_Role_Menu{},
|
|
// &entities.M_Menu_Client{},
|
|
// &entities.M_Role_Permission{},
|
|
// &entities.M_MaintenanceGroup{},
|
|
// &entities.M_MaintenanceGroupRole{},
|
|
// &entities.M_MaintenanceGroupRoleUser{},
|
|
// &entities.MCategoryEntity{},
|
|
// &entities.MProductEntity{},
|
|
// &entities.MUomEntity{},
|
|
// &entities.MVendorEntity{},
|
|
// &entities.MCrossReferenceEntity{},
|
|
// &entities.MWarehouseEntity{},
|
|
// &entities.MZonaEntity{},
|
|
// &entities.MAisleEntity{},
|
|
// &entities.MUserWarehouseEntity{},
|
|
// &entities.TAssignmentEntity{},
|
|
// &entities.TAssignmentUserEntity{},
|
|
// &entities.TInventoryReceiptEntity{},
|
|
// &entities.TInventoryReceiptLineEntity{},
|
|
// &entities.TInventoryRequestEntity{},
|
|
// &entities.TInventoryRequestLineEntity{},
|
|
// &entities.TInventoryIssueEntity{},
|
|
// &entities.TInventoryIssueLineEntity{},
|
|
// &entities.TInventoryReturnEntity{},
|
|
// &entities.TInventoryReturnLineEntity{},
|
|
// &entities.InventoryTransactionEntity{},
|
|
// &entities.InventoryStorageEntity{},
|
|
// &entities.TInventoryMovementEntity{},
|
|
// &entities.TInventoryMovementLineEntity{},
|
|
&entities.TInventoryQuarantineEntity{},
|
|
&entities.TInventoryQuarantineLineEntity{},
|
|
); err != nil {
|
|
return err
|
|
}
|
|
// Migrate ulang
|
|
return Migrate(db)
|
|
}
|