diff --git a/src/EFCore.Sqlite.Core/Migrations/SqliteMigrationsSqlGenerator.cs b/src/EFCore.Sqlite.Core/Migrations/SqliteMigrationsSqlGenerator.cs
index d1d6e7e23ff..a78d9d7ff22 100644
--- a/src/EFCore.Sqlite.Core/Migrations/SqliteMigrationsSqlGenerator.cs
+++ b/src/EFCore.Sqlite.Core/Migrations/SqliteMigrationsSqlGenerator.cs
@@ -441,7 +441,7 @@ private IReadOnlyList<MigrationOperation> RewriteOperations(
         if (rebuilds.Any())
         {
             operations.Add(
-                new SqlOperation { Sql = "PRAGMA foreign_keys = 0;", SuppressTransaction = true });
+                new SqlOperation { Sql = "PRAGMA defer_foreign_keys = ON;", SuppressTransaction = false });
         }
 
         foreach (var ((table, schema), _) in rebuilds)
@@ -458,12 +458,6 @@ private IReadOnlyList<MigrationOperation> 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 e3a82cc168d..acdfd8476e5 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 foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -171,10 +171,6 @@ public override async Task Alter_table_add_comment()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -198,7 +194,7 @@ public override async Task Alter_table_add_comment_non_default_schema()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -207,10 +203,6 @@ public override async Task Alter_table_add_comment_non_default_schema()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -234,7 +226,7 @@ public override async Task Alter_table_change_comment()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -243,10 +235,6 @@ public override async Task Alter_table_change_comment()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -268,7 +256,7 @@ public override async Task Alter_table_remove_comment()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -277,10 +265,6 @@ public override async Task Alter_table_remove_comment()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -306,7 +290,7 @@ public override async Task Rename_table()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -315,10 +299,6 @@ public override async Task Rename_table()
             //
             """
 ALTER TABLE "ef_temp_Persons" RENAME TO "Persons";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -344,7 +324,7 @@ public override async Task Rename_table_with_primary_key()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -353,10 +333,6 @@ public override async Task Rename_table_with_primary_key()
             //
             """
 ALTER TABLE "ef_temp_Persons" RENAME TO "Persons";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -385,7 +361,7 @@ public override async Task Rename_table_with_json_column()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -394,10 +370,6 @@ public override async Task Rename_table_with_json_column()
             //
             """
 ALTER TABLE "ef_temp_NewEntities" RENAME TO "NewEntities";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -508,7 +480,7 @@ public override async Task Add_column_with_comment()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -517,10 +489,6 @@ public override async Task Add_column_with_comment()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -568,7 +536,7 @@ public override async Task Add_column_with_check_constraint()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -577,10 +545,6 @@ public override async Task Add_column_with_check_constraint()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -603,7 +567,7 @@ public override async Task Alter_column_make_required()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -612,10 +576,6 @@ public override async Task Alter_column_make_required()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -638,7 +598,7 @@ public override async Task Alter_column_make_required_with_index()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -647,10 +607,6 @@ public override async Task Alter_column_make_required_with_index()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """,
             //
             """
@@ -678,7 +634,7 @@ public override async Task Alter_column_make_required_with_composite_index()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -687,10 +643,6 @@ public override async Task Alter_column_make_required_with_composite_index()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """,
             //
             """
@@ -721,7 +673,7 @@ public override async Task Alter_column_make_computed(bool? stored)
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -730,10 +682,6 @@ public override async Task Alter_column_make_computed(bool? stored)
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -758,7 +706,7 @@ public override async Task Alter_column_change_computed()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -767,10 +715,6 @@ public override async Task Alter_column_change_computed()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -795,7 +739,7 @@ public override async Task Alter_column_change_computed_recreates_indexes()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -804,10 +748,6 @@ public override async Task Alter_column_change_computed_recreates_indexes()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """,
             //
             """
@@ -836,7 +776,7 @@ public override async Task Alter_column_change_computed_type()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -845,10 +785,6 @@ public override async Task Alter_column_change_computed_type()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -873,7 +809,7 @@ public override async Task Alter_column_make_non_computed()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -882,10 +818,6 @@ public override async Task Alter_column_make_non_computed()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -908,7 +840,7 @@ public override async Task Alter_column_add_comment()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -917,10 +849,6 @@ public override async Task Alter_column_add_comment()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -945,7 +873,7 @@ public override async Task Alter_computed_column_add_comment()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -954,10 +882,6 @@ public override async Task Alter_computed_column_add_comment()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -980,7 +904,7 @@ public override async Task Alter_column_change_comment()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -989,10 +913,6 @@ public override async Task Alter_column_change_comment()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -1014,7 +934,7 @@ public override async Task Alter_column_remove_comment()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -1023,10 +943,6 @@ public override async Task Alter_column_remove_comment()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -1048,7 +964,7 @@ public override async Task Alter_column_set_collation()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -1057,10 +973,6 @@ public override async Task Alter_column_set_collation()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -1082,7 +994,7 @@ public override async Task Alter_column_reset_collation()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -1091,10 +1003,6 @@ public override async Task Alter_column_reset_collation()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -1159,7 +1067,7 @@ public override async Task Convert_json_entities_to_regular_owned()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -1168,10 +1076,6 @@ public override async Task Convert_json_entities_to_regular_owned()
             //
             """
 ALTER TABLE "ef_temp_Entity" RENAME TO "Entity";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -1216,7 +1120,7 @@ public override async Task Convert_regular_owned_entities_to_json()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -1225,10 +1129,6 @@ public override async Task Convert_regular_owned_entities_to_json()
             //
             """
 ALTER TABLE "ef_temp_Entity" RENAME TO "Entity";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -1258,7 +1158,7 @@ public override async Task Convert_string_column_to_a_json_column_containing_req
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -1267,10 +1167,6 @@ 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;
 """);
     }
 
@@ -1299,7 +1195,7 @@ public override async Task Drop_column()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -1308,10 +1204,6 @@ public override async Task Drop_column()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -1333,7 +1225,7 @@ public override async Task Drop_column_primary_key()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -1342,10 +1234,6 @@ public override async Task Drop_column_primary_key()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -1368,7 +1256,7 @@ public override async Task Drop_json_columns_from_existing_table()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -1377,10 +1265,6 @@ public override async Task Drop_json_columns_from_existing_table()
             //
             """
 ALTER TABLE "ef_temp_Entity" RENAME TO "Entity";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -1460,7 +1344,7 @@ public override async Task Add_primary_key_int()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -1469,10 +1353,6 @@ public override async Task Add_primary_key_int()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -1494,7 +1374,7 @@ public override async Task Add_primary_key_string()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -1503,10 +1383,6 @@ public override async Task Add_primary_key_string()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -1528,7 +1404,7 @@ SELECT IFNULL("SomeField", '')
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -1537,10 +1413,6 @@ SELECT IFNULL("SomeField", '')
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -1564,7 +1436,7 @@ public override async Task Add_primary_key_composite_with_name()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -1573,10 +1445,6 @@ public override async Task Add_primary_key_composite_with_name()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -1598,7 +1466,7 @@ public override async Task Drop_primary_key_int()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -1607,10 +1475,6 @@ public override async Task Drop_primary_key_int()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -1632,7 +1496,7 @@ public override async Task Drop_primary_key_string()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -1641,10 +1505,6 @@ public override async Task Drop_primary_key_string()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -1672,7 +1532,7 @@ public override async Task Add_foreign_key()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -1681,10 +1541,6 @@ public override async Task Add_foreign_key()
             //
             """
 ALTER TABLE "ef_temp_Orders" RENAME TO "Orders";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """,
             //
             """
@@ -1716,7 +1572,7 @@ public override async Task Add_foreign_key_with_name()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -1725,10 +1581,6 @@ public override async Task Add_foreign_key_with_name()
             //
             """
 ALTER TABLE "ef_temp_Orders" RENAME TO "Orders";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """,
             //
             """
@@ -1759,7 +1611,7 @@ public override async Task Drop_foreign_key()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -1768,10 +1620,6 @@ public override async Task Drop_foreign_key()
             //
             """
 ALTER TABLE "ef_temp_Orders" RENAME TO "Orders";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -1795,7 +1643,7 @@ public override async Task Add_unique_constraint()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -1804,10 +1652,6 @@ public override async Task Add_unique_constraint()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -1832,7 +1676,7 @@ public override async Task Add_unique_constraint_composite_with_name()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -1841,10 +1685,6 @@ public override async Task Add_unique_constraint_composite_with_name()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -1867,7 +1707,7 @@ public override async Task Drop_unique_constraint()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -1876,10 +1716,6 @@ public override async Task Drop_unique_constraint()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -1903,7 +1739,7 @@ public override async Task Add_check_constraint_with_name()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -1912,10 +1748,6 @@ public override async Task Add_check_constraint_with_name()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -1939,7 +1771,7 @@ public override async Task Alter_check_constraint()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -1948,10 +1780,6 @@ public override async Task Alter_check_constraint()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -1974,7 +1802,7 @@ public override async Task Drop_check_constraint()
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 """,
             //
             """
@@ -1983,10 +1811,6 @@ public override async Task Drop_check_constraint()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
diff --git a/test/EFCore.Sqlite.FunctionalTests/Migrations/SqliteMigrationsSqlGeneratorTest.cs b/test/EFCore.Sqlite.FunctionalTests/Migrations/SqliteMigrationsSqlGeneratorTest.cs
index 6b2fe9c9f49..6697e26cc36 100644
--- a/test/EFCore.Sqlite.FunctionalTests/Migrations/SqliteMigrationsSqlGeneratorTest.cs
+++ b/test/EFCore.Sqlite.FunctionalTests/Migrations/SqliteMigrationsSqlGeneratorTest.cs
@@ -834,16 +834,13 @@ public virtual void DropColumn_defers_subsequent_RenameColumn()
 FROM "Blog";
 GO
 
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 GO
 
 DROP TABLE "Blog";
 GO
 
 ALTER TABLE "ef_temp_Blog" RENAME TO "Blog";
-GO
-
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -885,16 +882,13 @@ public virtual void Deferred_RenameColumn_defers_subsequent_AddColumn()
 FROM "Blog";
 GO
 
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 GO
 
 DROP TABLE "Blog";
 GO
 
 ALTER TABLE "ef_temp_Blog" RENAME TO "Blog";
-GO
-
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -939,16 +933,13 @@ public virtual void Deferred_RenameColumn_defers_subsequent_CreateIndex_unique()
 FROM "Blog";
 GO
 
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 GO
 
 DROP TABLE "Blog";
 GO
 
 ALTER TABLE "ef_temp_Blog" RENAME TO "Blog";
-GO
-
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -988,16 +979,13 @@ public virtual void DropColumn_defers_subsequent_AddColumn_required()
 FROM "Blog";
 GO
 
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 GO
 
 DROP TABLE "Blog";
 GO
 
 ALTER TABLE "ef_temp_Blog" RENAME TO "Blog";
-GO
-
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -1040,7 +1028,7 @@ public virtual void Deferred_AddColumn_defers_subsequent_CreateIndex()
 FROM "Blog";
 GO
 
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 GO
 
 DROP TABLE "Blog";
@@ -1049,9 +1037,6 @@ 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");
 """);
     }
@@ -1089,16 +1074,13 @@ public virtual void DropColumn_in_table_which_has_another_spatial_column()
 FROM "Blog";
 GO
 
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 GO
 
 DROP TABLE "Blog";
 GO
 
 ALTER TABLE "ef_temp_Blog" RENAME TO "Blog";
-GO
-
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -1132,16 +1114,13 @@ public virtual void RenameTable_preserves_pending_rebuilds()
 FROM "Blog";
 GO
 
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 GO
 
 DROP TABLE "Blog";
 GO
 
 ALTER TABLE "ef_temp_Blog" RENAME TO "Blog";
-GO
-
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -1171,16 +1150,13 @@ public virtual void Rebuild_preserves_column_order()
 FROM "Ordinal";
 GO
 
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = ON;
 GO
 
 DROP TABLE "Ordinal";
 GO
 
 ALTER TABLE "ef_temp_Ordinal" RENAME TO "Ordinal";
-GO
-
-PRAGMA foreign_keys = 1;
 """);
     }
 }