私はEntity Framework Code Firstを使用してプロジェクトを開始しました。準備ができたら、データベースとコードをホストプロバイダにアップロードしました。すべてが働いた。MVC3とコードの最初のマイグレーション - 「データベースが作成されてからコンテキストをバックアップするモデルが変更されました」
私のクラスの1つに新しいフィールドを追加する必要があり、データベース内のデータを失いたくないです。したがって、私はCode First Migrationsの使用に関するいくつかのブログ記事に従ってみました。私は次のようにしました:
- リモート(運用)データベースをバックアップしました。
- 私は私は私はこの時点で私のクラスに
- PM>有効-移行を
- PM>アドオンの移行AddSortOrderToCar
- PM>アップデート - データベース
- をプロパティを追加
- ローカルにこのデータベースを添付ローカルデータベースの.bakファイルを作成し、そのファイルを使用してリモートのものに復元しました。
- 最後に、コードをリモートサイトに公開しました。
私は、次のエラーメッセージが表示されますサイトを参照してください:データベースが作成されてから は「blahblah」コンテキストをバックアップモデルが変更されました。コードの最初の移行を使用してデータベースを更新することを検討してください。
私は間違っていますか?
「アップデート - データベース-script」を働きました。私は、 'Update-Database'コマンドが同じことをしていると思っていたでしょう(しかし、スクリプトを生成することはありません)。とにかく。ありがとう! –
@ScottDietrich - np - これはすべきですが、すべての面で同期をとっておく必要があります(たとえば、マイグレーションはローカルDBのステータスなどに基づいて生成されます) db vs code - 「物を動かす」ことを始めたら、あなたは何か間違ったことが起こる可能性がより高い)。 SQLスクリプトはより安全な方法であることが判明しました。サーバー上にdevのセットアップをしていない限り、正確に見ることができます(マイグレーションを実行できるようにするため) – NSGaga
私は、 __MigrationHistoryテーブルのレコードは、同じマイグレーションが再び実行されることを阻止しませんでした。私は__MigrationHistoryテーブルのすべての行を削除し、-Scriptコマンドで手動で生成されたINSERT INTO [__MigrationHistory]行を挿入することになりました。移行履歴が再び整理されました。非常に有益な答え@ NSGagaありがとう! –