一般的なアドバイスは、データベースの移行を常にテストする必要があるということですが、その方法はよく秘密にされているようです ;)
私が選んだフレームワークは FluentMigration です。
私がやりたいと思うことは次のとおりです。
- データベースを N-1 に移行します。
- 一部のデータを保存します。
- データベースを N に移行します。
- データを読み取り、失われていないことを確認します。
- その他の関連する変更を確認する
しかし、単体テストから移行を実行する方法がわかりません。
一般的なアドバイスは、データベースの移行を常にテストする必要があるということですが、その方法はよく秘密にされているようです ;)
私が選んだフレームワークは FluentMigration です。
私がやりたいと思うことは次のとおりです。
しかし、単体テストから移行を実行する方法がわかりません。
統合テストで移行を開始するには、Process.Start を使用して migrate.exe コマンドにシェルアウトします。
例えば
var migrator = System.Diagnostics.Process.Start("migrator.exe", "/connection \"Data Source=db\\db.sqlite;Version=3;\" /db sqlite /target your.migrations.dll");
migrator.WaitForExit();
MSTest を使用している場合は、migrator.exe が展開項目として含まれていることを確認するか、プロセスの開始時に .exe が存在する場所へのパスを指定する必要があります。