2010-12-06 5 views
0

私はDjangoデータベースをsqliteからmysqlに移行しています。私は問題なしで以下を実行しました:python manage.pyを実行するとDBエラーが発生するloaddata datadump.json

python manage.py dumpdata> datadump.json あなたのsettings.pyをmysqlデータベースに変更してください。

しかし、私はのpython manage.py loaddataのdatadump.json次のコマンドを発行するとき、私はこのエラーを取得:

IntegrityError:(1062、 "重複エントリー'13 -13' キーについては、 '' from_category_id" )

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

おかげで、 J.

+0

1から

Unlike most SQL databases, SQLite does not restrict the type of data that may be inserted into a column based on the columns declared type. Instead, SQLite uses dynamic typing.

あなたは、DB内の既存のデータを持っていますか? – ismail

+0

はい、データベースにデータがあります。 – jimmyc3po

答えて

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

なぜSQLiteではなくSQLで動作するのでしょうか?

実際には、SQLiteは型チェックを行いません。つまり、簡単に整数フィールドにテキストを挿入できます。 MySQLにデータを挿入する前に、データを消去する必要があります。 http://www.sqlite.org/lang_createtable.html

+0

返信いただきありがとうございます。愚かな質問、私はmysqlデータベースまたはsqliteデータベースをチェックするのですか?私はこの時点で編集すべきではありません。 :D – jimmyc3po

+0

実際にあなたはあなたのモデルを確認したいと思う1.あなたのモデル対あなたのデータ対mysqlデータベース。つまり、エクスポートされたJSON(フィールド内のテキストが整数である必要があります)に一貫性のないデータがある場合です。いずれにしても、SQLiteは型チェックをしないので、なぜこの問題が起きているのか分かりません.Django管理者が間違った値を挿入するのをやめてしまうのは間違いありません。だからあなたは管理者の外でいくつかのアップデートをしましたか? – ismail

+0

私は問題を決して解明できませんでした。したがって、プロジェクトが小さいので、私は別のプロジェクトを作成し、私のデータを新しいプロジェクトに移行し、次にpython manage.py dumpdata> datadump.jsonを変更し、settings.pyを変更し、syncdb'ed、次にpython manage.py loaddata datadump.jsonそれは働いたように見えます。私は私の手にもう少し時間があるとき、私は戻って何がうまくいかないかを見なければならないでしょう。ありがとう。 – jimmyc3po

関連する問題