0

私はdjangoプロジェクトのデータベースにsqlite3を使用していましたが、それをmysqlエンジンに変更することにしました。私はsettings.pyのすべてを正しく変更し、データベースを失わないように、sqliteのものをテキストにダンプし、すべての "を`で変更し、コミットとsqlite3に関連するすべてのものを削除しました。mysqlでダンプファイルを実行し、すべてが完璧に追加されました.しかし、カテゴリと呼ばれるテーブルにカテゴリを追加しようとすると.

このエラーメッセージが表示されます

/admin/red_carpet/category/ の IntegrityError
(1062、「キー 1 のエントリ '0' が重複しています」)

エラーが何を言っているのか、キーが重複していると思いました。「id」列を見て、それが構造であることを確認したところ、id 列が「NOT NULL」であることがわかりました。その列には自動インクリメントが追加されていなかったので、それを追加して管理ページからカテゴリを実行しようとしました同じエラーが発生しました構造をもう一度見てauto_incrementから、0から開始するのではなく、0から開始する必要があるというクエリを追加しました最後の値は6でした。次に、django管理者からカテゴリを再度追加しましたが、それでも同じエラーが発生し、構造を再度調べ、特にphpmyadminのインデックス部分でその行を見つけました

Keyname Type        Cardinality  Action  Field
PRIMARY  PRIMARY       9                 id

私にとっては、すべてがうまく見え、実際にdjango adminを介して値を追加すると、同じエラーメッセージが表示されますが、値が追加されます

/admin/red_carpet/category/ の IntegrityError
(1062、「キー 1 のエントリ '0' が重複しています」)

なぜこの問題なのか本当に理解できません!!!! 誰もが前にこれを徹底しています!! ??

PS: 何かを削除しようとすると、同じエラー メッセージが表示されます。たとえば、カテゴリを削除すると、exat エラー メッセージが表示されますが、データベースを見ると、カテゴリが削除されていることがわかりました。

4

1 に答える 1

0

データベース間の問題を防ぐ 1 つの方法は、フィクスチャを使用することです。たとえば、(db に依存しない) json 形式でデータをダンプおよびロードします。

dump data コマンドと 、django ドキュメントのフィクスチャとは何かを参照してください。

于 2013-03-28T13:07:09.400 に答える