diff --git a/src/EFCore.Sqlite.Core/Migrations/SqliteMigrationsSqlGenerator.cs b/src/EFCore.Sqlite.Core/Migrations/SqliteMigrationsSqlGenerator.cs
index 0cb79140ee8..8267ff11987 100644
--- a/src/EFCore.Sqlite.Core/Migrations/SqliteMigrationsSqlGenerator.cs
+++ b/src/EFCore.Sqlite.Core/Migrations/SqliteMigrationsSqlGenerator.cs
@@ -458,7 +458,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 = 1;" });
         }
 
         foreach (var ((table, schema), _) in rebuilds)
@@ -475,12 +475,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 b8c91b18d60..e851d998649 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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -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 = 1;
 """,
             //
             """
@@ -1983,10 +1811,6 @@ public override async Task Drop_check_constraint()
             //
             """
 ALTER TABLE "ef_temp_People" RENAME TO "People";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -2328,7 +2152,7 @@ await Test(
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = 1;
 """,
             //
             """
@@ -2337,10 +2161,6 @@ await Test(
             //
             """
 ALTER TABLE "ef_temp_Person" RENAME TO "Person";
-""",
-            //
-            """
-PRAGMA foreign_keys = 1;
 """,
             //
             """
@@ -2494,7 +2314,7 @@ await Test(
 """,
             //
             """
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = 1;
 """,
             //
             """
@@ -2503,10 +2323,6 @@ 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 20e05b90a82..a1032d60cc9 100644
--- a/test/EFCore.Sqlite.FunctionalTests/Migrations/SqliteMigrationsSqlGeneratorTest.cs
+++ b/test/EFCore.Sqlite.FunctionalTests/Migrations/SqliteMigrationsSqlGeneratorTest.cs
@@ -823,16 +823,13 @@ public virtual void DropColumn_defers_subsequent_RenameColumn()
 FROM "Blog";
 GO
 
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = 1;
 GO
 
 DROP TABLE "Blog";
 GO
 
 ALTER TABLE "ef_temp_Blog" RENAME TO "Blog";
-GO
-
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -874,16 +871,13 @@ public virtual void Deferred_RenameColumn_defers_subsequent_AddColumn()
 FROM "Blog";
 GO
 
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = 1;
 GO
 
 DROP TABLE "Blog";
 GO
 
 ALTER TABLE "ef_temp_Blog" RENAME TO "Blog";
-GO
-
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -928,16 +922,13 @@ public virtual void Deferred_RenameColumn_defers_subsequent_CreateIndex_unique()
 FROM "Blog";
 GO
 
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = 1;
 GO
 
 DROP TABLE "Blog";
 GO
 
 ALTER TABLE "ef_temp_Blog" RENAME TO "Blog";
-GO
-
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -977,16 +968,13 @@ public virtual void DropColumn_defers_subsequent_AddColumn_required()
 FROM "Blog";
 GO
 
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = 1;
 GO
 
 DROP TABLE "Blog";
 GO
 
 ALTER TABLE "ef_temp_Blog" RENAME TO "Blog";
-GO
-
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -1029,7 +1017,7 @@ public virtual void Deferred_AddColumn_defers_subsequent_CreateIndex()
 FROM "Blog";
 GO
 
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = 1;
 GO
 
 DROP TABLE "Blog";
@@ -1038,9 +1026,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");
 """);
     }
@@ -1078,16 +1063,13 @@ public virtual void DropColumn_in_table_which_has_another_spatial_column()
 FROM "Blog";
 GO
 
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = 1;
 GO
 
 DROP TABLE "Blog";
 GO
 
 ALTER TABLE "ef_temp_Blog" RENAME TO "Blog";
-GO
-
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -1121,16 +1103,13 @@ public virtual void RenameTable_preserves_pending_rebuilds()
 FROM "Blog";
 GO
 
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = 1;
 GO
 
 DROP TABLE "Blog";
 GO
 
 ALTER TABLE "ef_temp_Blog" RENAME TO "Blog";
-GO
-
-PRAGMA foreign_keys = 1;
 """);
     }
 
@@ -1160,16 +1139,13 @@ public virtual void Rebuild_preserves_column_order()
 FROM "Ordinal";
 GO
 
-PRAGMA foreign_keys = 0;
+PRAGMA defer_foreign_keys = 1;
 GO
 
 DROP TABLE "Ordinal";
 GO
 
 ALTER TABLE "ef_temp_Ordinal" RENAME TO "Ordinal";
-GO
-
-PRAGMA foreign_keys = 1;
 """);
     }
 }