要将我的数据库输出到json文件,我通常会这样做
python manage.py dumptdata --indent=4 > mydata.json
但执行以下两个命令以设置南方时:
python manage.py schemamigration myproj --initial
python manage.py migrate myproj --fake
我注意到mytable中的两个布尔值从FALSE切换为TRUE!我看到从我的GUI Web Interface与数据库进行交互,然后更密切地比较更改和损坏的内容我想比较json和json但是启用了south我不能再使用上面的命令,因为它告诉我
Not synced (use migrations):
- myproj
我的表格中有条目受影响,我可能会有更多受影响的数据,我还没有发现。
class MyConfig(models.Model):
name = models.CharField(max_length=64)
myConfigName = models.CharField(max_length=64, unique=True)
myA = models.ForeignKey(MyA)
myB = models.ForeignKey(MyB)
myBoolA = models.BooleanField()
myBoolB = models.BooleanField()
myBoolC = models.BooleanField()
class Meta:
unique_together = ('name', 'myA', 'myB')
def __unicode__(self):
return '%s_%s_%s' % (self.myA.name, self.myB.name, self.name)
答案 0 :(得分:1)
我认为--initial或者--fake都不应该改变数据库,所以我很惊讶它会修改数据。就您收到“未同步(使用迁移)”错误的原因而言,我认为这可能是因为您伪造了初始迁移。
尝试取消迁移--fake并使用
重新应用初始迁移python manage.py migrate --fake zero
python manage.py migrate
然后,您应该可以执行dumptdata
答案 1 :(得分:1)
schemamigration
和migrate --fake
不会修改数据库。你有任何可以在迁移时重新加载的initial_data fixture吗?见https://docs.djangoproject.com/en/1.3/howto/initial-data/
尝试迁移:
python manage.py migrate --no-initial-data
有关选项的更多信息,请参阅south doc