Django 2.0:sqlite IntegrityError:FOREIGN KEY制約が失敗しました

nnyby:

私はdjango-pagetreeライブラリにDjango 2.0サポートを追加する作業をしています。自動テスト中にsqliteのインメモリデータベースを使用すると、次のような一連のエラーが発生します。

  File "/home/nnyby/src/django-pagetree/pagetree/tests/test_models.py", line 638, in setUp
    'children': [],
  File "/home/nnyby/src/django-pagetree/pagetree/models.py", line 586, in add_child_section_from_dict

...

  File "/home/nnyby/src/django-pagetree/venv/lib/python3.5/site-packages/django/db/backends/base/base.py", line 239, in _commit
    return self.connection.commit()
django.db.utils.IntegrityError: FOREIGN KEY constraint failed

これはDjango 2.0リリースノートに記載されています:https : //docs.djangoproject.com/en/2.0/releases/2.0/#foreign-key-constraints-are-now-enabled-on-sqlite

完全に理解していないその説明から、これは永続的でないテストデータベースには当てはまりませんよね?Django 2.0を使用する場合、私のsqliteテストデータベースは適切なオプションを使用して作成されませんか?

テストに使用しているアプリの設定は次のとおりです。https//github.com/ccnmtl/django-pagetree/blob/master/runtests.py

ダークグローテン:

ドキュメントには2つのことが書かれています。

  1. ForeignKey制約がある場合は、データベースレベルで適用されます。したがって、外部キー制約に違反していないことを確認してください。それが問題の最も可能性の高い原因ですが、他のデータベースでこれらの問題が発生したことを意味します。コードで次のようなパターンを探します。

    # in pagetree/models.py, line 810
    @classmethod
    def create_from_dict(cls, d):
        return cls.objects.create()  # what happens to d by the way?
    

    これは必ずPageBlock必要なため、ForeignKey制約エラーで失敗しますsection。そのため、create最初にそれを割り当てずに呼び出すことはできません

  2. (たとえば)アトミックトランザクションを実行して外部キーの制約を回避し、外部キーのコミットを延期する場合は、外部キーを初期に遅延さ​​せる必要があります。確かに、毎回再構築されるので、テストデータベースはすでにそれを持っているはずです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Django 2xでヘルプが必要です(FOREIGN KEY制約が失敗しました)

SQLite Delete Cascadeが機能しない:FOREIGN KEY制約が失敗しました

django.db.utils.IntegrityError:NOTNULL制約が失敗しました

DjangoモデルIntegrityError:NOT NULL制約が失敗しました:

Django IntegrityError; NOTNULL制約が失敗しました

django.db.utils.IntegrityError:FOREIGNKEY制約が失敗しました

SQLite IntegrityError:UNIQUE制約が失敗しました:

Android Room:FOREIGN KEY制約が失敗しました(Sqliteコード787)

sqlalchemy.exc.IntegrityError:(sqlite3.IntegrityError)NOTNULL制約が失敗しました

django.db.utils.IntegrityError: NOT NULL 制約が失敗しました: app_users.key_value_id

django.db.utils.IntegrityError: NOT NULL 制約が失敗しました: app_users.key_value_id

Createsuperuser django.db.utils.IntegrityError:NOTNULL制約に失敗しました

Django IntegrityError NOT NULL制約が失敗しました:accounts_solution.puzzle_id

Django IntegrityError-NOT NULL制約が失敗しました:learning_logs_topic.owner_id

Django IntegrityError-NOT NULL制約が失敗しました:portfolio_myportfolio.holder_id

Django、IntegrityError、NOT NULL制約が失敗しました:ask_response.postinfo_id

android.database.sqlite.SQLiteConstraintException:FOREIGN KEY制約が失敗しました(Sqliteコード787 SQLITE_CONSTRAINT_FOREIGNKEY)

sqlite3、IntegrityError:値の挿入時にUNIQUE制約が失敗しました

django.db.utils.IntegrityErrorが発生します:コマンドでFOREIGNKEY制約が失敗しました

IntegrityError NOT NULL制約が失敗しました:djangoを介してフォームを送信してください

django.db.utils.IntegrityError:UNIQUE制約に失敗しました:mode_setting.user_id

django.db.utils.IntegrityError:UNIQUE制約に失敗しました:auctions_bids.item_id

django.db.utils.IntegrityError:NOT NULL制約に失敗しました:app_user.zip

django.db.utils.IntegrityError:UNIQUE制約に失敗しました:rango_category__new.slug

django.db.utils.IntegrityError:NOT NULL制約に失敗しました:app.area_id

django.db.utils.IntegrityError:NOT NULL制約に失敗しました:polls_article.reporter_id

django.db.utils.IntegrityError:NOT NULL制約に失敗しました:users_profile.user_id

django.db.utils.IntegrityError:NOT NULL制約に失敗しました:appname_modelName.id

django.db.utils.IntegrityError:NOT NULL制約に失敗しました:main_profile.name

TOP 一覧

  1. 1

    グラフからテーブルに条件付き書式を適用するにはどうすればよいですか?

  2. 2

    ソートされた検索、ターゲット値未満の数をカウント

  3. 3

    Unity:未知のスクリプトをGameObject(カスタムエディター)に動的にアタッチする方法

  4. 4

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  5. 5

    Ansibleで複数行のシェルスクリプトを実行する方法

  6. 6

    Reactでclsxを使用する方法

  7. 7

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  8. 8

    Windows 10 Pro 1709を1803、1809、または1903に更新しますか?

  9. 9

    Pythonを使用して同じ列の同じ値の間の時差を取得する方法

  10. 10

    PowerShellの分割ファイルへのヘッダーの追加

  11. 11

    Chromeウェブアプリのウェブビューの高さの問題

  12. 12

    BLOBストレージからデータを読み取り、Azure関数アプリを使用してデータにアクセスする方法

  13. 13

    Crashlytics:コンパイラー生成とはどういう意味ですか?

  14. 14

    GoDaddyでのCKEditorとKCfinderの画像プレビュー

  15. 15

    Windows 10の起動時間:以前は20秒でしたが、現在は6〜8倍になっています

  16. 16

    MLでのデータ前処理の背後にある直感

  17. 17

    モーダルダイアログを自動的に閉じる-サーバーコードが完了したら、Googleスプレッドシートのダイアログを閉じます

  18. 18

    reCAPTCHA-エラーコード:ユーザーの応答を検証するときの「missing-input-response」、「missing-input-secret」(POSTの詳細がない)

  19. 19

    STSでループプロセス「クラスパス通知の送信」のループを停止する方法

  20. 20

    ファイル内の2つのマーカー間のテキストを、別のファイルのテキストのセクションに置き換えるにはどうすればよいですか?

  21. 21

    ネットワークグラフで、ネットワークコンポーネントにカーソルを合わせたときに、それらを強調表示するにはどうすればよいですか?

ホットタグ

アーカイブ