2017-05-17 67 views
0

数週間前、私はプロジェクトでの移行を有効にし、AspNetUsersテーブルに「ClientID」という列を追加しました。Add-Migrationでのエラー

もう1つの列「名前」を追加しようとしています。

PM> Add-Migration "Name" 

そして、私は次のエラーました:私はパッケージマネージャコンソールで次のコマンドを実行した

Unable to generate an explicit migration because the following explicit migrations are pending: [20161081751088_InitialCreate, 20161091825212_ClientID]. Apply the pending explicit migrations before attempting to generate a new explicit migration.

を私はupdateコマンド実行:

PM> Update-Database 

をしかし:

There is already an object named 'AspNetRoles' in the database.

私はオンライン調査と、この解決策が見つかりました:

PM> Add-Migration InitialMigrations -IgnoreChanges 

をしかし、その後、私は再び最初のエラーを得た:

Unable to generate an explicit migration because the following explicit migrations are pending: [20161081751088_InitialCreate, 20161091825212_ClientID]. Apply the pending explicit migrations before attempting to generate a new explicit migration.

どのように私はこの問題を解決することができますか?

+0

DBをすでに更新している場合は、以前の移行バージョンでロールバックしてから削除してください。それを削除するには、Update-Database -TargetMigration [PreviousMigrationName]を使用してください。他の方法としては、EFプロジェクトの 'Migrations'フォルダの' [20161081751088_InitialCreate] 'と' [20161091825212_ClientID] 'の両方を除外/削除する方法があります。 –

答えて

2
  1. データベースから_MigrationHistoryテーブルを削除し、プロジェクトで

  2. を移行フォルダーを削除します。

  3. パッケージマネージャコンソールからEnable-Migrationsコマンドを実行します。
  4. Add-Migration Initコマンドを実行して移行を作成します。
  5. Up()のコード行をすべて削除して、最初の移行を行います。 (空の移行を作成し、直面しているエラーを解決するには)
  6. Update-Databaseコマンドを実行して空の移行を適用します。
  7. 実際の移行の追加を準備するために、コードの最初のモデルを変更します。
  8. Add-Migration InitNewコマンドを実行して、新しい移行を作成します。
  9. Update-Databaseコマンドを実行して変更を適用します。
+0

あなたの答えをありがとう、私は#8のポイントを取得しない、あなたは明確にすることができますか? – user3378165

+0

あなたは大歓迎です。つまり、そのステップでコードの最初のモデルのための新しい移行を作成します。 _InitNew_は名前だけです。 _Add-Migration MyMigration_などのように変更できます。 – kkakkurt

+0

私の問題を解決してくれてありがとう! – user3378165

関連する問題