diff --git a/autotests/server/dbtest_data/dbinit_sqlite b/autotests/server/dbtest_data/dbinit_sqlite --- a/autotests/server/dbtest_data/dbinit_sqlite +++ b/autotests/server/dbtest_data/dbinit_sqlite @@ -209,7 +209,7 @@ CREATE INDEX CollectionPimItemRelation_PimItem_idIndex ON CollectionPimItemRelation (PimItem_id) -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -244,9 +244,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -281,9 +281,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -309,9 +309,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -337,9 +337,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -362,9 +362,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -387,9 +387,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -407,9 +407,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -428,9 +428,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -449,9 +449,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -470,9 +470,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -490,9 +490,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -510,9 +510,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -534,9 +534,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -558,9 +558,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -582,9 +582,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -603,10 +603,10 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -625,9 +625,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -645,9 +645,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -665,9 +665,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -685,9 +685,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -705,9 +705,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -725,9 +725,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -745,4 +745,4 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF diff --git a/autotests/server/dbtest_data/dbinit_sqlite_incremental b/autotests/server/dbtest_data/dbinit_sqlite_incremental --- a/autotests/server/dbtest_data/dbinit_sqlite_incremental +++ b/autotests/server/dbtest_data/dbinit_sqlite_incremental @@ -158,7 +158,7 @@ ALTER TABLE CollectionPimItemRelation ADD COLUMN PimItem_id BIGINT NOT NULL -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -184,9 +184,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -204,9 +204,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -241,9 +241,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -278,9 +278,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -306,9 +306,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -334,9 +334,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -359,9 +359,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -384,9 +384,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -404,9 +404,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -425,9 +425,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -446,9 +446,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -467,9 +467,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -487,9 +487,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -507,9 +507,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -531,9 +531,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -555,9 +555,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -579,9 +579,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -600,10 +600,10 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -622,9 +622,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -642,9 +642,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -662,9 +662,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -682,9 +682,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -702,9 +702,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -722,9 +722,9 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF -PRAGMA foreign_key_check=OFF +PRAGMA defer_foreign_keys=ON BEGIN TRANSACTION @@ -742,4 +742,4 @@ COMMIT -PRAGMA foreign_key_check=ON +PRAGMA defer_foreign_keys=OFF diff --git a/src/server/storage/dbinitializer_p.cpp b/src/server/storage/dbinitializer_p.cpp --- a/src/server/storage/dbinitializer_p.cpp +++ b/src/server/storage/dbinitializer_p.cpp @@ -253,14 +253,14 @@ // Unforunately, SQLite does not support add or removing foreign keys through ALTER TABLE, // this is the only way how to do it. return { - QStringLiteral("PRAGMA foreign_key_check=OFF"), + QStringLiteral("PRAGMA defer_foreign_keys=ON"), QStringLiteral("BEGIN TRANSACTION"), QStringLiteral("ALTER TABLE %1 RENAME TO %1_old").arg(table.name), buildCreateTableStatement(table), QStringLiteral("INSERT INTO %1 SELECT * FROM %1_old").arg(table.name), QStringLiteral("DROP TABLE %1_old").arg(table.name), QStringLiteral("COMMIT"), - QStringLiteral("PRAGMA foreign_key_check=ON") + QStringLiteral("PRAGMA defer_foreign_keys=OFF") }; }