2017-05-30 3 views
2

Firebird 2.5データベースでの移行を有効にしようとしています。エンティティフレームワークコードの最初の移行とFirebird

私はVS2015を使用しており、ADOドライバとエンティティプロバイダがインストールされ、正しく動作しています。

データベースをリバースエンジニアリングして、動作させるために必要な変更を加えました。

パッケージマネージャコンソールでenable-migrationsを実行し、移行を追加できます。

PM> update-database 
Specify the '-Verbose' flag to view the SQL statements being applied to the target database. 
Applying explicit migrations: [201705301505265_Initial]. 
Applying explicit migration: 201705301505265_Initial. 

ScriptHalted 

を、私はこれを取得-Verbose私は更新のデータベースを行う場合:

PM> update-database -Verbose 
Using StartUp project 'Visao.Web'. 
Using NuGet project 'Visao.Data'. 
Specify the '-Verbose' flag to view the SQL statements being applied to the target database. 
Target database is: 'D:\Upwork\Fernando\SIGECOM.FDB' (DataSource: localhost, Provider: FirebirdSql.Data.FirebirdClient, Origin: Configuration). 
Applying explicit migrations: [201705301505265_Initial]. 
Applying explicit migration: 201705301505265_Initial. 
INSERT INTO "__MigrationHistory"("MigrationId", "ContextKey", "Model", "ProductVersion") 
VALUES (CAST(_UTF8'201705301505265_Initial' AS VARCHAR(150)), CAST(_UTF8'Visao.Data.Migrations.Configuration' AS VARCHAR(300)), x'1F8B0800000000000400ECBDDD92DC3 

と文字の多くにその追加しようとしているので、私は更新-データベースをんこの問題が発生した

データベースへのBLOB

__MigrationHistoryデータベースがFDBファイルに追加されました:だから私はそれが働くのようなものだと思うScreenshot of the DB

私は次に何をすべきか考えていませんか?

EDIT

すべてが作成されているように見えるので、私はエラーが移行テーブルに挿入からかもしれないと思います。 Migration table Empty バグかもしれませんか?

EDIT 2

I更新-データベース-scriptとcreated an SQL scriptとIBExplorer上で実行すると、次のエラーを取得しようとした:

can't format message 13:896 -- message file C:\WINDOWS\firebird.msg not found. 
Dynamic SQL Error. 
SQL error code = -104. 
Unexpected end of command - line 1, column 226. 

でも実行しているだけでINSERT文が機能していませんが。

EDIT 3

他の誰かが

EDIT 4

を知っているかどうかを確認するために彼らのトラッカーでissueを作成します。バグトラッカーのページを担当する人が削除続けているようですバグ。

とにかく、プロバイダを変更すると、MSSQLまたはMySQLのいずれかが移行されます。

EDIT 5

これは、作成された最初の移動です。私は既存のデータベースを使用しようとしているので空ですが、すでにコードが使用されています。

public partial class Initial : DbMigration 
    { 
     public override void Up() 
     { 
     } 

     public override void Down() 
     { 
     } 
    } 
+0

あなたの質問は、今ではすべてが完了し、データベースで何をすることになっているのですか? –

+0

@RandRandomいいえ、私の質問はどのように移行を動作させるか、彼らは正しくコミットされていません。 –

+0

サポートされているかどうかわかりません。 [こちら](http://tracker.firebirdsql.org/browse/DNET-506) –

答えて

2

Mark Rotteveelが言ったように(彼はこの回答のポイントを得るべきです)。あなたはFirebirdで文章サイズの限界に挑戦しています。たとえそれが直接実行されたとしても、スクリプトでなければならないので、私はそれを行うことができませんので、パラメータは機能しません。

複数の小さなモデルを作成し、移行に使用する可能性があります。または、常にスクリプトをファイルに生成し、手動でパラメータを使用します。

+0

1つの挿入の代わりに複数の更新を挿入して残りのデータをBLOBに連結するのは可能でしょうか? –

+0

それは私が思っていることです。小さな移行での問題は、最終的に、それが再びうまくいくほど大きくなるということです。だから別の方法があるはずですよね? –

+0

@ MarkRotteveelおそらくはい。すぐにポップアップする問題は、更新の半分のセットです。 –

関連する問題