質問が示すように、これはまだリリースされていない開発タイプの環境での移行に適用されます。
この問題は、次の手順で解決できます。データベースを最後の適切な移行に復元し、Entity Frameworkプロジェクトから不適切な移行を削除し、新しい移行を生成してデータベースに適用します。注:コメントから判断すると、EF Coreを使用している場合、これらの正確なコマンドは適用されない可能性があります。
手順1:以前の移行に復元する
まだ移行を適用していない場合は、この部分をスキップできます。データベーススキーマを以前のポイントに復元するには、-TargetMigrationオプションを指定してUpdate-Databaseコマンドを発行し、最後の適切な移行を指定します。エンティティフレームワークコードがソリューションの別のプロジェクトにある場合は、「-Project」オプションを使用するか、パッケージマネージャーコンソールでデフォルトのプロジェクトを切り替える必要があります。
Update-Database –TargetMigration: <name of last good migration>
最後の適切な移行の名前を取得するには、「Get-Migrations」コマンドを使用して、データベースに適用されている移行名のリストを取得します。
PM> Get-Migrations
Retrieving migrations that have been applied to the target database.
201508242303096_Bad_Migration
201508211842590_The_Migration_applied_before_it
201508211440252_And_another
このリストには、最近適用された移行が最初に表示されます。ダウングレードする移行の後にリストで発生する移行を選択します。つまり、ダウングレードする移行の前に適用された移行です。次に、Update-Databaseを発行します。
Update-Database –TargetMigration: "<the migration applied before it>"
指定されたマイグレーションの後に適用されたすべてのマイグレーションは、最初に適用された最新のマイグレーションから順にダウングレードされます。
ステップ2:プロジェクトから移行を削除する
remove-migration name_of_bad_migration
remove-migration
Entity Frameworkのバージョンでコマンドが使用できない場合は、不要な移行のファイルをEFプロジェクトの「移行」フォルダーから手動で削除します。この時点で、新しい移行を作成してデータベースに適用できます。
ステップ3:新しい移行を追加する
add-migration my_new_migration
ステップ4:移行をデータベースに適用する
update-database