From 2eaef33a05cd5f22d5a42821ff971f267a400fb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jiri=20Cincura=20=E2=86=B9?= Date: Thu, 16 Apr 2026 11:40:03 +0200 Subject: [PATCH] =?UTF-8?q?Revert=20"Use=20`PRAGMA=20defer=5Fforeign=5Fkey?= =?UTF-8?q?s`=20instead=20of=20`PRAGMA=20foreign=5Fkeys`=20when=E2=80=A6"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 89b2687e54474b8010a48b47d4e32bb571d358c5. --- .../SqliteMigrationsSqlGenerator.cs | 8 +- .../Migrations/MigrationsSqliteTest.cs | 276 +++++++++++++++--- .../SqliteMigrationsSqlGeneratorTest.cs | 40 ++- 3 files changed, 269 insertions(+), 55 deletions(-) diff --git a/src/EFCore.Sqlite.Core/Migrations/SqliteMigrationsSqlGenerator.cs b/src/EFCore.Sqlite.Core/Migrations/SqliteMigrationsSqlGenerator.cs index 10e6c5bfca7..d46be401077 100644 --- a/src/EFCore.Sqlite.Core/Migrations/SqliteMigrationsSqlGenerator.cs +++ b/src/EFCore.Sqlite.Core/Migrations/SqliteMigrationsSqlGenerator.cs @@ -458,7 +458,7 @@ private IReadOnlyList RewriteOperations( if (rebuilds.Any()) { operations.Add( - new SqlOperation { Sql = "PRAGMA defer_foreign_keys = 1;" }); + new SqlOperation { Sql = "PRAGMA foreign_keys = 0;", SuppressTransaction = true }); } foreach (var ((table, schema), _) in rebuilds) @@ -475,6 +475,12 @@ private IReadOnlyList RewriteOperations( }); } + if (rebuilds.Any()) + { + operations.Add( + new SqlOperation { Sql = "PRAGMA foreign_keys = 1;", SuppressTransaction = true }); + } + foreach (var index in indexesToRebuild) { operations.Add(CreateIndexOperation.CreateFrom(index)); diff --git a/test/EFCore.Sqlite.FunctionalTests/Migrations/MigrationsSqliteTest.cs b/test/EFCore.Sqlite.FunctionalTests/Migrations/MigrationsSqliteTest.cs index 83921a5a30d..e1787e353ee 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Migrations/MigrationsSqliteTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Migrations/MigrationsSqliteTest.cs @@ -162,7 +162,7 @@ public override async Task Alter_table_add_comment() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -171,6 +171,10 @@ public override async Task Alter_table_add_comment() // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -194,7 +198,7 @@ public override async Task Alter_table_add_comment_non_default_schema() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -203,6 +207,10 @@ public override async Task Alter_table_add_comment_non_default_schema() // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -226,7 +234,7 @@ public override async Task Alter_table_change_comment() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -235,6 +243,10 @@ public override async Task Alter_table_change_comment() // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -256,7 +268,7 @@ public override async Task Alter_table_remove_comment() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -265,6 +277,10 @@ public override async Task Alter_table_remove_comment() // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -290,7 +306,7 @@ public override async Task Rename_table() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -299,6 +315,10 @@ public override async Task Rename_table() // """ ALTER TABLE "ef_temp_Persons" RENAME TO "Persons"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -324,7 +344,7 @@ public override async Task Rename_table_with_primary_key() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -333,6 +353,10 @@ public override async Task Rename_table_with_primary_key() // """ ALTER TABLE "ef_temp_Persons" RENAME TO "Persons"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -361,7 +385,7 @@ public override async Task Rename_table_with_json_column() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -370,6 +394,10 @@ public override async Task Rename_table_with_json_column() // """ ALTER TABLE "ef_temp_NewEntities" RENAME TO "NewEntities"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -480,7 +508,7 @@ public override async Task Add_column_with_comment() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -489,6 +517,10 @@ public override async Task Add_column_with_comment() // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -536,7 +568,7 @@ public override async Task Add_column_with_check_constraint() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -545,6 +577,10 @@ public override async Task Add_column_with_check_constraint() // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -567,7 +603,7 @@ public override async Task Alter_column_make_required() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -576,6 +612,10 @@ public override async Task Alter_column_make_required() // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -598,7 +638,7 @@ public override async Task Alter_column_make_required_with_index() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -607,6 +647,10 @@ public override async Task Alter_column_make_required_with_index() // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """, // """ @@ -634,7 +678,7 @@ public override async Task Alter_column_make_required_with_composite_index() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -643,6 +687,10 @@ public override async Task Alter_column_make_required_with_composite_index() // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """, // """ @@ -673,7 +721,7 @@ public override async Task Alter_column_make_computed(bool? stored) """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -682,6 +730,10 @@ public override async Task Alter_column_make_computed(bool? stored) // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -706,7 +758,7 @@ public override async Task Alter_column_change_computed() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -715,6 +767,10 @@ public override async Task Alter_column_change_computed() // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -739,7 +795,7 @@ public override async Task Alter_column_change_computed_recreates_indexes() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -748,6 +804,10 @@ public override async Task Alter_column_change_computed_recreates_indexes() // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """, // """ @@ -776,7 +836,7 @@ public override async Task Alter_column_change_computed_type() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -785,6 +845,10 @@ public override async Task Alter_column_change_computed_type() // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -809,7 +873,7 @@ public override async Task Alter_column_make_non_computed() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -818,6 +882,10 @@ public override async Task Alter_column_make_non_computed() // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -840,7 +908,7 @@ public override async Task Alter_column_add_comment() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -849,6 +917,10 @@ public override async Task Alter_column_add_comment() // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -873,7 +945,7 @@ public override async Task Alter_computed_column_add_comment() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -882,6 +954,10 @@ public override async Task Alter_computed_column_add_comment() // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -904,7 +980,7 @@ public override async Task Alter_column_change_comment() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -913,6 +989,10 @@ public override async Task Alter_column_change_comment() // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -934,7 +1014,7 @@ public override async Task Alter_column_remove_comment() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -943,6 +1023,10 @@ public override async Task Alter_column_remove_comment() // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -964,7 +1048,7 @@ public override async Task Alter_column_set_collation() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -973,6 +1057,10 @@ public override async Task Alter_column_set_collation() // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -994,7 +1082,7 @@ public override async Task Alter_column_reset_collation() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -1003,6 +1091,10 @@ public override async Task Alter_column_reset_collation() // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -1067,7 +1159,7 @@ public override async Task Convert_json_entities_to_regular_owned() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -1076,6 +1168,10 @@ public override async Task Convert_json_entities_to_regular_owned() // """ ALTER TABLE "ef_temp_Entity" RENAME TO "Entity"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -1120,7 +1216,7 @@ public override async Task Convert_regular_owned_entities_to_json() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -1129,6 +1225,10 @@ public override async Task Convert_regular_owned_entities_to_json() // """ ALTER TABLE "ef_temp_Entity" RENAME TO "Entity"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -1158,7 +1258,7 @@ public override async Task Convert_string_column_to_a_json_column_containing_req """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -1167,6 +1267,10 @@ public override async Task Convert_string_column_to_a_json_column_containing_req // """ ALTER TABLE "ef_temp_Entity" RENAME TO "Entity"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -1195,7 +1299,7 @@ public override async Task Drop_column() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -1204,6 +1308,10 @@ public override async Task Drop_column() // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -1225,7 +1333,7 @@ public override async Task Drop_column_primary_key() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -1234,6 +1342,10 @@ public override async Task Drop_column_primary_key() // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -1256,7 +1368,7 @@ public override async Task Drop_json_columns_from_existing_table() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -1265,6 +1377,10 @@ public override async Task Drop_json_columns_from_existing_table() // """ ALTER TABLE "ef_temp_Entity" RENAME TO "Entity"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -1344,7 +1460,7 @@ public override async Task Add_primary_key_int() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -1353,6 +1469,10 @@ public override async Task Add_primary_key_int() // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -1374,7 +1494,7 @@ public override async Task Add_primary_key_string() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -1383,6 +1503,10 @@ public override async Task Add_primary_key_string() // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -1404,7 +1528,7 @@ SELECT IFNULL("SomeField", '') """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -1413,6 +1537,10 @@ SELECT IFNULL("SomeField", '') // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -1436,7 +1564,7 @@ public override async Task Add_primary_key_composite_with_name() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -1445,6 +1573,10 @@ public override async Task Add_primary_key_composite_with_name() // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -1466,7 +1598,7 @@ public override async Task Drop_primary_key_int() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -1475,6 +1607,10 @@ public override async Task Drop_primary_key_int() // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -1496,7 +1632,7 @@ public override async Task Drop_primary_key_string() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -1505,6 +1641,10 @@ public override async Task Drop_primary_key_string() // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -1532,7 +1672,7 @@ public override async Task Add_foreign_key() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -1541,6 +1681,10 @@ public override async Task Add_foreign_key() // """ ALTER TABLE "ef_temp_Orders" RENAME TO "Orders"; +""", + // + """ +PRAGMA foreign_keys = 1; """, // """ @@ -1572,7 +1716,7 @@ public override async Task Add_foreign_key_with_name() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -1581,6 +1725,10 @@ public override async Task Add_foreign_key_with_name() // """ ALTER TABLE "ef_temp_Orders" RENAME TO "Orders"; +""", + // + """ +PRAGMA foreign_keys = 1; """, // """ @@ -1611,7 +1759,7 @@ public override async Task Drop_foreign_key() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -1620,6 +1768,10 @@ public override async Task Drop_foreign_key() // """ ALTER TABLE "ef_temp_Orders" RENAME TO "Orders"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -1653,7 +1805,7 @@ public override async Task Add_unique_constraint() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -1662,6 +1814,10 @@ public override async Task Add_unique_constraint() // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -1686,7 +1842,7 @@ public override async Task Add_unique_constraint_composite_with_name() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -1695,6 +1851,10 @@ public override async Task Add_unique_constraint_composite_with_name() // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -1717,7 +1877,7 @@ public override async Task Drop_unique_constraint() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -1726,6 +1886,10 @@ public override async Task Drop_unique_constraint() // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -1749,7 +1913,7 @@ public override async Task Add_check_constraint_with_name() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -1758,6 +1922,10 @@ public override async Task Add_check_constraint_with_name() // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -1781,7 +1949,7 @@ public override async Task Alter_check_constraint() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -1790,6 +1958,10 @@ public override async Task Alter_check_constraint() // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -1812,7 +1984,7 @@ public override async Task Drop_check_constraint() """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -1821,6 +1993,10 @@ public override async Task Drop_check_constraint() // """ ALTER TABLE "ef_temp_People" RENAME TO "People"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } @@ -2162,7 +2338,7 @@ await Test( """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -2171,6 +2347,10 @@ await Test( // """ ALTER TABLE "ef_temp_Person" RENAME TO "Person"; +""", + // + """ +PRAGMA foreign_keys = 1; """, // """ @@ -2324,7 +2504,7 @@ await Test( """, // """ -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; """, // """ @@ -2333,6 +2513,10 @@ await Test( // """ ALTER TABLE "ef_temp_Product" RENAME TO "Product"; +""", + // + """ +PRAGMA foreign_keys = 1; """); } diff --git a/test/EFCore.Sqlite.FunctionalTests/Migrations/SqliteMigrationsSqlGeneratorTest.cs b/test/EFCore.Sqlite.FunctionalTests/Migrations/SqliteMigrationsSqlGeneratorTest.cs index a1032d60cc9..20e05b90a82 100644 --- a/test/EFCore.Sqlite.FunctionalTests/Migrations/SqliteMigrationsSqlGeneratorTest.cs +++ b/test/EFCore.Sqlite.FunctionalTests/Migrations/SqliteMigrationsSqlGeneratorTest.cs @@ -823,13 +823,16 @@ public virtual void DropColumn_defers_subsequent_RenameColumn() FROM "Blog"; GO -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; GO DROP TABLE "Blog"; GO ALTER TABLE "ef_temp_Blog" RENAME TO "Blog"; +GO + +PRAGMA foreign_keys = 1; """); } @@ -871,13 +874,16 @@ public virtual void Deferred_RenameColumn_defers_subsequent_AddColumn() FROM "Blog"; GO -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; GO DROP TABLE "Blog"; GO ALTER TABLE "ef_temp_Blog" RENAME TO "Blog"; +GO + +PRAGMA foreign_keys = 1; """); } @@ -922,13 +928,16 @@ public virtual void Deferred_RenameColumn_defers_subsequent_CreateIndex_unique() FROM "Blog"; GO -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; GO DROP TABLE "Blog"; GO ALTER TABLE "ef_temp_Blog" RENAME TO "Blog"; +GO + +PRAGMA foreign_keys = 1; """); } @@ -968,13 +977,16 @@ public virtual void DropColumn_defers_subsequent_AddColumn_required() FROM "Blog"; GO -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; GO DROP TABLE "Blog"; GO ALTER TABLE "ef_temp_Blog" RENAME TO "Blog"; +GO + +PRAGMA foreign_keys = 1; """); } @@ -1017,7 +1029,7 @@ public virtual void Deferred_AddColumn_defers_subsequent_CreateIndex() FROM "Blog"; GO -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; GO DROP TABLE "Blog"; @@ -1026,6 +1038,9 @@ public virtual void Deferred_AddColumn_defers_subsequent_CreateIndex() ALTER TABLE "ef_temp_Blog" RENAME TO "Blog"; GO +PRAGMA foreign_keys = 1; +GO + CREATE INDEX "IX_Blog_Name" ON "Blog" ("Name"); """); } @@ -1063,13 +1078,16 @@ public virtual void DropColumn_in_table_which_has_another_spatial_column() FROM "Blog"; GO -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; GO DROP TABLE "Blog"; GO ALTER TABLE "ef_temp_Blog" RENAME TO "Blog"; +GO + +PRAGMA foreign_keys = 1; """); } @@ -1103,13 +1121,16 @@ public virtual void RenameTable_preserves_pending_rebuilds() FROM "Blog"; GO -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; GO DROP TABLE "Blog"; GO ALTER TABLE "ef_temp_Blog" RENAME TO "Blog"; +GO + +PRAGMA foreign_keys = 1; """); } @@ -1139,13 +1160,16 @@ public virtual void Rebuild_preserves_column_order() FROM "Ordinal"; GO -PRAGMA defer_foreign_keys = 1; +PRAGMA foreign_keys = 0; GO DROP TABLE "Ordinal"; GO ALTER TABLE "ef_temp_Ordinal" RENAME TO "Ordinal"; +GO + +PRAGMA foreign_keys = 1; """); } }