新しい移行を追加していますが、次のメッセージが表示されます。
次の明示的な移行が保留中のため、明示的な移行を生成できません: [201203170856167_left]。新しい明示的な移行を生成する前に、保留中の明示的な移行を適用してください。
誰でも私を助けることができますか?
新しい移行を追加していますが、次のメッセージが表示されます。
次の明示的な移行が保留中のため、明示的な移行を生成できません: [201203170856167_left]。新しい明示的な移行を生成する前に、保留中の明示的な移行を適用してください。
誰でも私を助けることができますか?
アプリケーションに未処理の移行がありUpdate-Database
、別の移行を追加する前に実行する必要があることを示しています。
私も同じ問題を抱えていました。データベースに接続できない場合、エンティティ フレームワークがこのエラーを生成するようです。そのため、他の問題を探す前に、アクセスできることを確認してください。
パッケージ マネージャー コンソールから "update-database" を実行して変更をデータベースにプッシュするか、保留中の移行ファイル ([201203170856167_left]) を Migrations フォルダーから削除してから "add-migration" を再実行して、編集に基づいて新しい移行を作成します。
このエラーは、移行が認識されなくなったことを意味する場合もあります。これは、Migrations.Configuration の ContextKey の値を変更した後に発生しました。解決策は、単にデータベース テーブル「__MigrationHistory」の ContextKey を更新すること (または、Configuration クラスの値を元に戻すこと) でした。アプリケーションの ContextKey と Namespace は一致する必要があります。
同じ問題があり、上記の回答からのいくつかのヒントで解決できました:
パッケージ マネージャー コンソールで "update-database -verbose" を使用して、移行が接続を試みるより具体的な情報を取得します。(私の場合、スタートアッププロジェクトが正しく設定されていないことがわかりました...)
使用していない場合Update-Database
は、削除するだけです。更新を実行した場合は、 を使用してロールバックしUpdate-Database -TargetMigration "NameOfPreviousMigration"
、削除してください。
参照: http://elegantcode.com/2012/04/12/entity-framework-migrations-tips/
このテキストをここから直接コピーしました: How do I undo the last Add-Migration command?
ちょうど私の2セント:
私のシナリオ:
解決:
これを回避するために、より明示的なパラメーターを提供しました。
Add-Migration -ConnectionString "Server=localhost\SQLEXPRESS;Database=YourDataBase;Trusted_Connection=True;" -ConnectionProviderName "System.Data.SqlClient" -verbose
app.config フォルダーに設定を設定して、この動作をデフォルトに設定できるので、毎回明示的なパラメーターを指定する必要はないと思います。ただし、これを行う方法がわかりません。
多くの人にとってこれは答えではありませんが、EF は DB に接続できない場合にこのエラーをチャックします。私のように自宅で仕事をしている場合は、VPN に接続していることを確認してください。
私は同じ問題を抱えていて、 Add-Migration 'MigrationName' -Force を実行して解決することしかできませんでした
-Force が重要な部分です。
ヒント:-Script
よくわからない場合は、移行コマンドにスイッチを使用することをお勧めします。また、Update-Database
実際に何が行われているかを理解するのにも役立ちます。
以下を実行してデータベースを更新すると、手動で適用できるスクリプトが取得されます (または -Script タグなしで再度実行します)。
私はUpdate-Database
次を実行します:
Update-Database -Script -ConfigurationTypeName Configuration_ASPNETIdentity -ConnectionStringName SQL_AzureLive
SQL_AzureLive
構成内の名前付き接続文字列はどこにありますか。
次に、SQL が正しく表示されることを確認し、適用して完了です。他の多くの人が言っているように、接続文字列が間違っているか無効である場合、このエラーが発生します。
私もこの問題に遭遇しました。新しいDBを作成し、コードファーストのDB移行のために保留中の変更があり、「Update-Database」コマンドを実行しようとしたときに発生しました。解決策 : 「Add-Migration -MigrationName」コマンドを実行して、新しい DB の新しい移行を作成します。次に、「Update-Database」コマンドを実行します。
シナリオ
問題
マスターから更新した後、「Add-Migration my_migration_name」を実行しましたが、次のエラーが発生しました。
次の明示的な移行が保留中のため、明示的な移行を生成できません: [201607181944091_AddExternalEmailActivity]。新しい明示的な移行を生成する前に、保留中の明示的な移行を適用してください。
そのため、「Update-Database」を実行すると、次のエラーが発生します。
保留中の変更があり、自動移行が無効になっているため、現在のモデルに一致するようにデータベースを更新できません
解決
この時点で、「Add-Migration my_migration_name」を再実行すると問題が解決しました。私の理論では、「Update-Database」を実行すると、「Add-Migration」が機能するために必要なすべての状態になったということです。
Add-Migration の実行時に最新であることがわかっているデータベースでも、この問題が発生しました。Add-Migration コマンドをもう一度実行するだけで解決しました。上記の Robin Dorbell が示唆するように、接続の問題が疑われます。
古い投稿ですが、誰かを助けるかもしれません。私にとっては、プロジェクトの名前を変更Assembly name
したために起こりました。そのため、テーブル内をorの新しい値Default namespace
に更新する必要がありました。正直なところ、どちらを使用すればよいかわかりません。私にとってはどちらも同じだからです。ContextKey
_MigrationHisotry
Assembly name
Default namespace
移行から別の移行に戻した直後に、まったく同じ問題が発生しました。
私の場合、「migration06」から「migration04」への「ターゲット移行」を行いました。
「migration0」6 を削除する必要がありましたが、「migration05」を強制的に作成することができました。これは基本的に、対象の移行の後に次の移行を保持する必要があることを意味します。