Django 1.8 迁移 "Table already exists"

Django 1.8 migrations "Table already exists"

我一直在努力制作一个自动部署系统,以便更轻松地更新我的 django 站点,而且它大部分都有效,但现在我的数据库更改很麻烦。我有自动部署 运行 "makemigrations" "migrate" 然后 "syncdb"

我遇到的麻烦是当我运行 迁移时,它告诉我我的table 已经存在并且无法创建。以前的答案已经说过 运行 "migrate --fake",但是如果我这样做,似乎认为一切都是最新的。那么问题是我 运行 "makemigrations" 或 "migrate" 并且它说没有检测到任何更改(即使我的数据库中缺少一列)。我试图 运行 "sqlall" 弄清楚它认为数据库应该是什么,它告诉我我有待处理的迁移。所以我尝试了 运行ning "migrate" 并且它说不存在迁移。

我该如何管理?还有以后数据库迁移遇到troubleshoot/fix这些问题怎么办?

谢谢

我解决了这个问题。这个问题源于对 Django 迁移如何工作的误解。此外,根据评论,syncdb 不再是 manage.py 中的命令。

最初的问题是我一直在使用不同的数据库进行部署然后我切换并且我的迁移与我的开发数据库不同步,所以我不得不清除数据库和迁移并重新开始我的数据。然后我 运行 makemigrations 在我的本地机器上迁移到那里(对于我的开发数据库)。然后我上传到服务器并让 fab 脚本 运行 在服务器生产数据库上迁移而不调用 makemigrations。这似乎解决了问题。