2011-09-12 14 views
3

治具をロードする前にコンテンツタイプをリセットしました(Problems with contenttypes when loading a fixture in Django参照)。[django]エラー:コンテンツタイプをリセットできませんでした

しかしcontenttypesのはリセットされませんでした:

...project_dir > manage.py reset contenttypes

You have requested a database reset. This will IRREVERSIBLY DESTROY any data for the "contenttypes" application in the database "my_database". Are you sure you want to do this?

Type 'yes' to continue, or 'no' to cancel: yes

Error: Error: contenttypes couldn't be reset. Possible reasons:

  • The database isn't running or isn't configured correctly.
  • At least one of the database tables doesn't exist.
  • The SQL was invalid.

Hint: Look at the output of 'django-admin.py sqlreset contenttypes'. That's the SQL this command wasn't able to run.

The full error: (1217, 'Cannot delete or update a parent row: a foreign key cons traint fails')

すべてのヘルプは大歓迎されます。ありがとうございました!

+0

あなたは 'django-admin.py sqlreset contenttypes'コマンドを入力して、エラーが何であるか確認できますか? –

+0

これについての洞察はありますか?あなたはその問題を解決することができましたか? –

答えて

0

投稿した質問には別のanswerがあります - natural keysを使用してください。

「親行を削除または更新できません:外部キーcons traintが失敗します」というエラーは、その行を指し示す別のオブジェクトが存在するため、コンテンツタイプ行を削除できないことを意味します。例えば。その場合には空白でない一般的な外部キー関係が存在するかどうかを判断する。

本当にコンテンツタイプのアプリをリセットする必要がある場合は、これに必要なSQLコマンドを取得し、CASCADEステートメントを使用するように変更することができます。しかし、これは危険ですコンテンツタイプだけでなく、コンテンツタイプを指す別のテーブルの行も削除されるためです。

自然なキーを使って治具を作り直すのは助かります。

関連する問題