0

Django データベースを sqlite から mysql に移行しています。私は問題なく次のことを行いました:

python manage.py dumpdata > datadump.json settings.py を mysql データベースに変更します。

しかし、次のコマンドpython manage.py loaddata datadump.jsonを発行すると、次のエラーが発生します。

IntegrityError: (1062、「キー 'from_category_id' のエントリ '13-13' が重複しています」)

コマンドを再度実行してデータをロードできるように、この問題を修正する方法を教えてもらえますか?

ありがとう、J.

4

1 に答える 1

1
  1. theDB に既存のデータはありますか?,
  2. indent --4 を試して、目玉できるバージョンを取得してください
  3. サンプルデータを投稿する
  4. 重複キー違反が発生したか、挿入しようとしているデータが列の型と一致していないようです。つまり、models.py で適用されている制約、フィールドの型、および mysql で作成されたテーブルを確認してください。

問題は、なぜそれが私のSQLではなくSQLITEで機能するのですか?

本当に簡単です。SQLITE は型チェックを行いません。つまり、テキストを整数フィールドに簡単に挿入できます。MySQL に挿入する前に、データを消去する必要があります。

ほとんどの SQL データベースとは異なり、SQLite は、列に宣言された型に基づいて列に挿入できるデータの型を制限しません。代わりに、SQLite は動的型付けを使用します。

http://www.sqlite.org/lang_createtable.htmlから

于 2010-12-06T23:13:49.657 に答える