Skip to content

Commit ea77c76

Browse files
committed
only switch back if foreign keys was on
1 parent 7f8fe1b commit ea77c76

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/Migrator/MigrateAnywhere.cs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
using System;
22
using System.Collections.Generic;
3-
using System.Reflection;
43
using DotNetProjects.Migrator.Framework;
54
using DotNetProjects.Migrator.Providers;
65
using DotNetProjects.Migrator.Providers.Impl.SQLite;
@@ -68,10 +67,15 @@ public override void Migrate(IMigration migration)
6867
var attr = migration.GetType().GetTypeInfo().GetCustomAttribute<MigrationAttribute>();
6968
#else
7069
var attr = (MigrationAttribute)Attribute.GetCustomAttribute(migration.GetType(), typeof(MigrationAttribute));
71-
#endif
70+
#endif
71+
var foreignKeysWasOn = false;
7272
if (attr.DisableForeignKeysInSqlite && _provider is SQLiteTransformationProvider sqlite)
7373
{
74-
sqlite.SetPragmaForeignKeys(false);
74+
foreignKeysWasOn = sqlite.IsPragmaForeignKeysOn();
75+
if (foreignKeysWasOn)
76+
{
77+
sqlite.SetPragmaForeignKeys(false);
78+
}
7579
}
7680

7781
_provider.BeginTransaction();
@@ -85,7 +89,7 @@ public override void Migrate(IMigration migration)
8589
ApplyMigration(migration, attr);
8690
}
8791

88-
if (attr.DisableForeignKeysInSqlite && _provider is SQLiteTransformationProvider sqlite2)
92+
if (foreignKeysWasOn && _provider is SQLiteTransformationProvider sqlite2)
8993
{
9094
sqlite2.SetPragmaForeignKeys(true);
9195
}

0 commit comments

Comments
 (0)