2016-03-28 3 views
1

Errorアイデンティティに欠落している移行を追加するには? (無効なオブジェクト名「dbo.AspNetRoles」)

私はasp.netアプリケーションを作成しているし、私の開発マシン上では、asp.netのMVCにおけるアイデンティティの一部を使用する必要があるテーブルに組み込まれてこれらを作成しました。

ただし、最初の作成後に、SwitchToIdentityDbContextの移行を作成して、これらのテーブルを作成するすべてのロジックを作成しなければなりませんでした。しかし、当時の私のアプリケーションでは、これらのテーブルはすでに存在していたので、そのロジックを削除しました。その後、私は、これらのテーブルを持たない新しいデータソースに自分のアプリケーションを配備しようとすると、アイデンティティの欠落テーブルが発生していました。

これを実行するには、欠落している移行を生成する方法はありますか?

今のところ、私は私の設定でこれを持っている:

AutomaticMigrationsEnabled = true; 
AutomaticMigrationDataLossAllowed = true; 

を私はその移行を削除し、新しいものを追加した場合でも、それは空です。

+0

ur DbContextのDatabaseInitilalizerが見つからないことがあります。たとえばMigrateDatabaseToLatestVersion – Helikaon

+1

1つのオプションは、Visual Studioのすべての移行 '.cs'ファイルと、移行dbテーブルのすべてのレコードを手動で削除することです。その後、すべてを再作成する新しい移行をVisual Studioで作成することができます。ただし、移行テーブルだけでなく、既存のデータベースを完全に削除する必要があります。 –

+0

私はDrewのオプションを提案するか、完全な再構築スクリプトを生成します。必要に応じて存在するオブジェクトをコメントアウトすることができます:update-database -Script -SourceMigration $ InitialDatabase –

答えて

1

データベースに存在するデータを気にしない場合、スキーマを修正する1つの方法は、Visual Studioのすべての.cs移行とデータベース内のdbo.__MigrationHistoryテーブルのすべてのレコードを削除することです。その後、データベースを修正するためにVisual Studioで新しいマイグレーションを作成しようとすることができます。

ただし、それでも問題が解決しない場合は、Visual Studioですべての移行をクリアしてデータベースを完全に削除することができます。その後

add-migration CreateMyDb、その後、update-database

を実行して、あなたが行くように良いことがあります。

あなたのデータのためのケアを行う場合(あなたがそれを使用する場合)、あなたはいつもの移行を破壊する前にServer Management Studio内のファイルを.csvに、データベースのテーブルの内容をエクスポートすることができます。

関連する問題