django south 破坏了我的数据库(无法删除约束)
我想在一个表里添加一个表格和一个外键。最开始我写的是:
class VirtualMachine(models.Model):
...
然后我把它改成了:
class OperatingSystem(models.Model):
name = models.CharField(max_length=40)
def __unicode__(self):
return self.name
class VirtualMachine(models.Model):
operating_system = models.ForeignKey(OperatingSystem, default=1)
我想添加一个条目,让1对应“WindowsXP”。但是South不喜欢这样,所以我把最后一行改成了:
operating_system = models.ForeignKey(OperatingSystem, null=True)
这样就可以了。完成这个迁移后,我添加了“WindowsXP”的条目,然后又改回:
operating_system = models.ForeignKey(OperatingSystem, default=1)
我执行了 python manage.py schemamigration app --auto
,这个没问题,然后执行 python manage.py migrate app
,结果卡住了。卡住了!
我取消了这个操作,然后进入了 psql
。我无法执行 SELECT * FROM app_virtualmachine;
- 这个操作会一直停在那里,虽然从其他表获取数据没有问题。我甚至连从那张表中选择一列都做不到。我试着删除South添加的约束,但也没用。到底怎么回事?
1 个回答
2
哦,我觉得这个表可能被锁住了什么的。我重启了postgres,然后就可以手动对这个表进行操作,救回它。