最近、コード ファースト バックエンド (SQL CE 4.0 データベース) を使用して WPF アプリケーションを作成しました。このアプリケーションは現在公開されており、技術者以外の人々によって使用されています。
いくつかの変更を行ったので、変更を反映するために移行を追加する必要があります。これは正常に完了しました。コマンドを使用するだけで、これをローカル マシンで正常に動作させることができますUpdate-Database
。
アップデートを展開するとき、これはどのように機能しますか? 顧客のデータベースがどのように移行されるのかわかりません。開発マシンではないマシンで実行すると、次のエラーが発生します。
保留中の変更があり、自動移行が無効になっているため、現在のモデルに一致するようにデータベースを更新できません。保留中のモデルの変更をコードベースの移行に書き込むか、自動移行を有効にします。自動移行を有効にするには、DbMigrationsConfiguration.AutomaticMigrationsEnabled を true に設定します。
Ps 私は絶対に自動移行を有効にしたくありません ;)
アップデート - -
これが私の初期化子です。
Database.SetInitializer(new Initializer());
これが私の実際の初期化子です。
public class Initializer : MigrateDatabaseToLatestVersion<Context, Configuration>
{
}
そして、これが私の Configuration クラスのコンストラクターです。
public Configuration()
{
AutomaticMigrationsEnabled = false;
DbMigrator migrator = new DbMigrator(this);
if (migrator.GetPendingMigrations().Any())
{
_pendingMigrations = true;
migrator.Update();
}
}