我试图将我的Django应用程序数据库从SQLite迁移到MySQl。尽管使用了外键约束失败 - 自然标志
我使用--natural
标志,manage.py dumpdata
如this answer所示。
下面是使用命令manage.py dumdata --natural > hunt.json
然后我更新的设置连接到MySQL数据库我的模型
from django.db import models
class DJManager(models.Manager):
def get_by_natural_key(self, name):
return self.get(name=name)
class DJ(models.Model):
objects = DJManager()
name = models.CharField(max_length=50, unique=True)
rank = models.IntegerField()
img = models.ImageField(upload_to='/img/', height_field=None, width_field=None)
soundcloud_profile = models.CharField(max_length=100, blank=True, null=True)
def natural_key(self):
return (self.name)
#for human readable representation of objects
def __unicode__(self):
return self.name
class Song(models.Model):
song_id = models.IntegerField()
name = models.CharField(max_length=100)
title = models.CharField(max_length=100)
normalized_name = models.CharField(max_length=100)
artist = models.ForeignKey(DJ, default=None, blank=True, null=True)
artists = models.CharField(max_length=100)
remixers = models.CharField(max_length=100, default=None, blank=True, null=True)
release_date = models.DateField()
slug = models.CharField(max_length=100)
artwork = models.CharField(max_length=100)
genres = models.CharField(max_length=50)
duplicate = models.BooleanField(default=False)
votes = models.IntegerField(default=0)
#for human readable representation of objects
def __unicode__(self):
return self.normalized_name
我倾倒数据。
接下来我正在使用manage.py syncdb
来同步数据库。
然后使用manage.py reset contenttypes
给我的错误(1217, 'Cannot delete or update a parent row: a foreign key constraint fails')
什么错在这里的?
使用manage.py loaddata hunt
它给出了一个错误IntegrityError: Could not load contenttypes.ContentType(pk=23): (1062, "Duplicate entry 'south-migrationhistory' for key 'app_label'")
这只是让你从不检查任何外键。这消除了外键的整点,这是参照完整性。 – overgroove