sql >> データベース >  >> RDS >> Mysql

MySqlのEFコア`update-database`が`__EFMigrationsHistory'が存在しないために失敗します`

    これは、ASP.NETIdentityまたはASP.NETCoreとは関係ありません。これは、一般的にEntityFrameworkに関連しています。データベースを更新するとき、EFは__EFMigrationsHistoryを使用します 実行された移行を記録して、将来それらが再度実行されないようにします。

    この機能は、データベースプロバイダーによって実装されます。 、EF自体ではありません。 PostgresSQLのNpgsqlプロバイダーテーブルを作成しなかったケースが少なくとも1つありました> 。

    解決策は簡単です-自分でテーブルを作成してください:

    CREATE TABLE `__EFMigrationsHistory` 
    ( 
        `MigrationId` nvarchar(150) NOT NULL, 
        `ProductVersion` nvarchar(32) NOT NULL, 
         PRIMARY KEY (`MigrationId`) 
    );
    

    更新

    別のがありました 同様の質問 2016年。これは公式のMySQLプロバイダーのバグです。修正は、テーブルを作成することです。どちらかだけではありません。非同期操作は、たとえば別のスレッドで実行することによって偽造されます。

    Pomelo.EntityFrameworkCore.MySql などのサードパーティのMySQLプロバイダーを調査することをお勧めします 。 見つかって修正されました 1年前の移行履歴のバグ。

    MySQLの所有者がOracleであるとすると 、コネクタの大幅な進歩は期待しないでください。またはデータベース。




    1. 存在しない場合のシーケンスの作成方法

    2. 高可用性のためのMySQLのハイブリッドクラウドレプリケーション

    3. Laravel:指定されたキーが長すぎました。キーの最大長は767バイトです

    4. java.lang.IllegalArgumentExceptionが発生するのはなぜですか。この場合、インデックス1のバインド値はnullです。