0

だから私はSQLiteデータベースをアップグレードしようとしています。アップグレードでは、列のデータ型を変更する必要があります。したがって、私の思考プロセスは次のとおりです(テーブルと呼びますfoo):

  1. テーブルを作成しfoo_tempます。
  2. 古いデータを foo から table に挿入しfoo_tempます。
  3. 古いfooテーブルを削除します。
  4. foo_tempテーブルを fooに変更します。

ただし、外部キーの制約により、ステップ 3 で失敗します。PRAGMA foreign_keys = OFF;ドロップの前にa を挿入することforeign keys=false;から、接続文字列にa を追加することまで、すべてを試しました。Fluent Nhibernate でこのテーブルを削除できるようには見えません。「Fluently」接続を構成するときに無効にできる設定があるのではないでしょうか? 私はそれを見つけることができないようです。

UI クライアント (SQLiteSpy など) を使用すると、問題なくテーブルを削除できることに気付きました。何が原因でしょうか?

4

1 に答える 1

0

だから私はうまくいくと思われる解決策を思いつきました。ここで見つけたコードを使用します (クレジットは ppiotrowicz に送られます):

nhibernate で SQLite 外部キーを有効にする

私は基本的に、そのドライバーを交換しPRAGMA foreign_keys = ONて参照しましたPRAGMA foreign_keys = OFFSQLiteConfiguration.Standard.ConnectionString(cs).Driver<MyDriver>()

于 2013-02-28T19:48:36.650 に答える