gpt4 book ai didi

mysql - Django 1.8 迁移 "Table already exists"

转载 作者:行者123 更新时间:2023-11-30 22:38:53 26 4
gpt4 key购买 nike

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

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

我该如何管理它?以及 future ,我应该如何进行数据库迁移来排查/修复这些问题?

谢谢

最佳答案

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

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

关于mysql - Django 1.8 迁移 "Table already exists",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31643274/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com