From 3073cfb953a0d58431f9824d49ba209170d2dc1b Mon Sep 17 00:00:00 2001 From: viktorstrate Date: Sat, 24 Apr 2021 19:28:20 +0200 Subject: [PATCH] Attempt to fix clear db for mysql --- api/database/database.go | 18 +++++++++++++++--- api/scanner/photoview_test.db | Bin 0 -> 163840 bytes 2 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 api/scanner/photoview_test.db diff --git a/api/database/database.go b/api/database/database.go index d4d721e6..cc429368 100644 --- a/api/database/database.go +++ b/api/database/database.go @@ -191,22 +191,28 @@ func MigrateDatabase(db *gorm.DB) error { func ClearDatabase(db *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}) for _, model := range database_models { // get table name of model structure table := dry_run.Find(model).Statement.Table - switch drivers.DatabaseDriver() { + switch db_driver { case drivers.DatabaseDriverPostgres: if err := tx.Exec(fmt.Sprintf("TRUNCATE TABLE %s CASCADE", table)).Error; err != nil { return err } - break case drivers.DatabaseDriverMysql: if err := tx.Exec(fmt.Sprintf("TRUNCATE TABLE %s", table)).Error; err != nil { return err } - break case drivers.DatabaseDriverSqlite: if err := tx.Exec(fmt.Sprintf("DELETE FROM %s", table)).Error; err != nil { 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 }) diff --git a/api/scanner/photoview_test.db b/api/scanner/photoview_test.db new file mode 100644 index 0000000000000000000000000000000000000000..b97d513c38e79137ca13419295f5df0bd1ed5cd1 GIT binary patch literal 163840 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 literal 0 HcmV?d00001