我正在尝试将我的Django应用程序数据库从SQLite迁移到MySQl。
this answer建议我使用--natural
标记与manage.py dumpdata
。
以下是我的模特
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 dumdata --natural > hunt.json
然后我正在更新设置以连接到MySQL数据库。
接下来,我正在使用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'")
答案 0 :(得分:-1)
我在设置中更新了我的数据库,如下所示,错误就消失了。
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'abc',
'USER': 'root',
'PASSWORD': 'root',
'HOST': '127.0.0.1',
'PORT': '3306',
'OPTIONS': {
"init_command": "SET foreign_key_checks = 0;",
}
},