【发布时间】:2012-01-07 18:49:51
【问题描述】:
我将一些数据批量加载到我的 Postgresql 数据库中,结果发现这一切都有些错误。为了解决这个问题,我刷新了数据库以重新加载正确的数据。
重新加载数据,我对模型进行了更改并应用了正常的./manage.py schemamigration app --auto,然后是./manage.py migrate app(到目前为止一直在工作)。
此时我开始收到错误:
django.db.utils.DatabaseError: relation "app_model" already exists
而且回溯似乎正在调用初始迁移文件 001。所以我认为答案是这样做:
./manage.py migrate app 0005 --fake
我要应用的当前迁移是 0006(即这是迁移开始失败的地方),然后 postgres 中的南数据库应该回到我愚蠢地刷新它之前的位置。此时我应该能够
./manage.py migrate app
有人能告诉我这种方法是正确的吗?或者如果不是,正确的做法是什么?
【问题讨论】:
-
很难确定,但从您的描述看来,您采取了正确的方法。可以肯定的是,您可以创建数据库架构的副本并首先对其进行测试吗?
-
您也可以尝试创建一个新数据库(+在 settings.py 中更改数据库名称)并运行 syncdb + migrate
-
@StephenEmslie,这正是我需要的建议,我走在正确的轨道上,能够创建一个“一次性”数据库并按照指定测试迁移非常有帮助,谢谢!
标签: django postgresql django-south