1

次のエラーが表示されます。

IntegrityError: duplicate key value violates unique constraint "users_userprofile_pkey"

MySQL から Postgres に移行しているので、次を使用して MySQL データベースからデータをダンプしています。

python2.7 manage.py dumpdata --indent=4 --natural > dump.json

dump.json を Postgresql データベースにロードしようとすると、次のエラーが表示されます。

 python manage.py loaddata dump.json

ユーザー/モデルに次のシグナルがあります。

post_save.connect(create_user_profile, sender=User, dispatch_uid="user_create_profile")
post_save.connect(create_api_key, sender=User, dispatch_uid="user_create_api_key")
4

2 に答える 2

5

post_save シグナルをコメントアウトしてから、loaddata を実行する必要がありました。

于 2012-08-12T22:09:14.110 に答える
0

問題はキーワードが原因である可能性があります。ここで--naturaldumpdata 自然キーに関するドキュメントを読むと、データベースの移行に適用されるいくつかの問題があることがわかります。

また、ここでは、かなり興味深い (そして退屈な) と思われるこの問題の解決策について話しています。

別のモデルを作成する前に、それらが存在することを確認できるように、相互に依存しないモデルを最初に追加することをいつでも試みることができます。すなわち:

このモデルがある場合:

class Person(models.Model):
    first_name = models.CharField(max_length=100)
    last_name = models.CharField(max_length=100)

    birthdate = models.DateField()

    class Meta:
        unique_together = (('first_name', 'last_name'),)

class Book(models.Model):
    name = models.CharField(max_length=100)
    author = models.ForeignKey(Person)

次に、最初に Person クラスを移行し、次に book クラスを移行します。

また、エラーを投稿できる場合は非常に役立ちます(より具体的に説明できるため)が、問題が主なキーの問題であると確信しています

于 2012-08-09T04:53:39.743 に答える