Entity Frameworkの移行をインストールし、クラスにプロパティを追加し、EF移行に渦を付けました。初期エンティティフレームワークの移行スクリプトの取得
開発データベースがすぐに更新されました。ここまでは順調ですね。
ここでは、このの変更スクリプトを作成して、本番データベースのマイグレーションの使用を使用したいと考えています。既存のプロジェクトにこれを適用したため、既存のデータベースがあることに注意してください。私が持っている
移行は、以下のとおりです。
PM> Get-Migrations
Retrieving migrations that have been applied to the target database.
201204102238194_AutomaticMigration
201203310233324_InitialCreate
PM>
私は、以下のものを使用してデルタスクリプトを得ることができると思った:
Update-Database -SourceMigration:201203310233324_InitialCreate -TargetMigration:201204102238194_AutomaticMigration -script
しかし、それは私にエラーを与える:
'201204102238194_AutomaticMigration' is not a valid migration. Explicit migrations must be used for both source and target when scripting the upgrade between them.
何が起こるかを見るために、私は2つのパラメータを逆にして(逆方向移行)、スクリプトを取得しました-forceフラグ(新しい列が削除された)を追加した後に期待してください。
この最初の移行のスクリプトはどのように入手できますか?
どのように初期移行を行ったのですか?自動移行には、データベース全体のスクリプトを作成する必要があります。これは、既存のデータベースでこのようなスクリプトを実行すると、多くのエラーが発生します。代わりに[このアプローチ](http://www.ladislavmrnka.com/2012/03/ef-4-3-migrations-and-existing-database)を試すことができますか? –
@Ladislav:私の全体(初期)データベースは既に稼働しているので、データベース全体のスクリプトは実際には必要ありません。私が理解できないことは、マイグレーションを初めて使用する前に、すでにプロダクションに入っている最初のデータベースから最初のアップデートに移動する方法です。 SourceMigrationとTargetMigrationのパラメータを* -forceとともに逆にすると、新しい列を削除するスクリプトが作成されるため、Migrationsには私の最初のDBスキーマがどこかにあるはずです。私は最初のデータベースから最初の新しい反復に移動することはできません(それらの少数の列を追加してください)。 –