Attempt to fix clear db for mysql
This commit is contained in:
parent
ed02e90338
commit
3073cfb953
|
@ -191,22 +191,28 @@ func MigrateDatabase(db *gorm.DB) error {
|
||||||
func ClearDatabase(db *gorm.DB) error {
|
func ClearDatabase(db *gorm.DB) error {
|
||||||
err := db.Transaction(func(tx *gorm.DB) error {
|
err := db.Transaction(func(tx *gorm.DB) error {
|
||||||
|
|
||||||
|
db_driver := drivers.DatabaseDriver()
|
||||||
|
|
||||||
|
if db_driver == drivers.DatabaseDriverMysql {
|
||||||
|
if err := tx.Exec("SET FOREIGN_KEY_CHECKS = 0;").Error; err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
dry_run := tx.Session(&gorm.Session{DryRun: true})
|
dry_run := tx.Session(&gorm.Session{DryRun: true})
|
||||||
for _, model := range database_models {
|
for _, model := range database_models {
|
||||||
// get table name of model structure
|
// get table name of model structure
|
||||||
table := dry_run.Find(model).Statement.Table
|
table := dry_run.Find(model).Statement.Table
|
||||||
|
|
||||||
switch drivers.DatabaseDriver() {
|
switch db_driver {
|
||||||
case drivers.DatabaseDriverPostgres:
|
case drivers.DatabaseDriverPostgres:
|
||||||
if err := tx.Exec(fmt.Sprintf("TRUNCATE TABLE %s CASCADE", table)).Error; err != nil {
|
if err := tx.Exec(fmt.Sprintf("TRUNCATE TABLE %s CASCADE", table)).Error; err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
break
|
|
||||||
case drivers.DatabaseDriverMysql:
|
case drivers.DatabaseDriverMysql:
|
||||||
if err := tx.Exec(fmt.Sprintf("TRUNCATE TABLE %s", table)).Error; err != nil {
|
if err := tx.Exec(fmt.Sprintf("TRUNCATE TABLE %s", table)).Error; err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
break
|
|
||||||
case drivers.DatabaseDriverSqlite:
|
case drivers.DatabaseDriverSqlite:
|
||||||
if err := tx.Exec(fmt.Sprintf("DELETE FROM %s", table)).Error; err != nil {
|
if err := tx.Exec(fmt.Sprintf("DELETE FROM %s", table)).Error; err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -215,6 +221,12 @@ func ClearDatabase(db *gorm.DB) error {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if db_driver == drivers.DatabaseDriverMysql {
|
||||||
|
if err := tx.Exec("SET FOREIGN_KEY_CHECKS = 1;").Error; err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
Binary file not shown.
Loading…
Reference in New Issue