我正在新的开发环境中部署一个项目。
当我使用 South 时,我做了:
$ python manage.py syncdb --all
$ python manage.py migrate --fake
我使用 syncdb --all
来应用模型的实际状态。
然后migrate --fake
将所有模型标记为已迁移。
但之后,我的模型不再是最新版本(缺少字段)
我做错了什么?
我假设我的所有修改都有迁移。
如果我这样做
$ python manage.py syncdb
它似乎创建了自从我使用 South 以来的第一个状态(这是预期的)
但后来
$ python manage.py migrate
某些表显示为已创建
最佳答案
实际上这对于我的情况来说应该没问题
$ python manage.py syncdb --all
$ python manage.py migrate --fake
最近不得不重新部署我的应用程序,我遇到了同样的问题。
我刚刚意识到我在模型上进行了双重初始迁移导致了问题
0001_initial.py
0002_initial.py
0003_auto__add_field_mytable_myfield.py
我只是删除并重命名
0001_initial.py
0002_auto__add_field_mytable_myfield.py
然后重做整个数据库部署(显然没有忘记更新我的其他主机上已应用的迁移)
关于Django - 部署syncdb和South,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17121737/