1

我有一个带有相关字段设置的模型。我跑manage.py migrate然后它在我的数据库中创建了一个表。然后我运行manage.py makemigrations,以便它可以创建一个带有前缀“0001”的初始迁移文件。我在模型中添加了另一个字段,然后manage.py makemigrations再次运行,它创建了另一个带有前缀“0002”的迁移文件。当我manage.py migrate现在运行时,它仍然会查看第一个迁移文件,因此会抛出“表已存在”的错误。如何让它只查看最新的迁移文件,以便将新列添加到表中?我正在使用 MySQL。

4

1 回答 1

2

这永远不会发生,除非 django 检测到(认为)数据库尚未设置,并尝试使用模式初始化表。

看起来你的表已经设置好了,但这对于 django 来说是不知道的。这就是为什么它尝试开始应用第一次迁移 - 表创建和模式包含在其中。

您可以根据您的具体问题使用--fakeand--fake-initial选项,它告诉 django 表已经设置并准备好,并伪造迁移。

有关更多信息的有用链接:

django 迁移 - django 文档

django 迁移,入门 - realpython

如何在伪造后重做迁移 - stackoverflow

于 2015-09-12T05:13:23.413 回答