diff --git a/core/metrics/db.go b/core/metrics/db.go index 4b341f928..daed84dbd 100644 --- a/core/metrics/db.go +++ b/core/metrics/db.go @@ -45,6 +45,11 @@ func SetupSchema() error { return err } + // enable FK constraints only here to make sure entity for metric exists + if err := db.Instance.Exec("pragma foreign_keys(1)").Error; err != nil { + return err + } + // drop obsolete indexes for _, idx := range []struct { name string diff --git a/server/db/db.go b/server/db/db.go index f5b898198..41ebb4032 100644 --- a/server/db/db.go +++ b/server/db/db.go @@ -62,7 +62,8 @@ func New(driver, dsn string) (*gorm.DB, error) { params += typ + "=" + param } - for _, pragma := range []string{"busy_timeout(5000)", "foreign_keys(1)", "synchronous(NORMAL)"} { + // TODO "foreign_keys(1)" is only set in metrics migrator to ensure home entity exists + for _, pragma := range []string{"busy_timeout(5000)", "synchronous(NORMAL)"} { addParam("_pragma", pragma) }