Django 迁移问题

Posted

技术标签:

【中文标题】Django 迁移问题【英文标题】:Django Migration questions 【发布时间】:2021-11-20 21:39:30 【问题描述】:

我是 Django 新手,但每次对模型进行任何更改时,我都需要先执行“python manage.py makemigrations”然后执行“python manage.py migrate”

makemigrations 将在迁移文件夹下创建新文件:

0001_xx
0002_xx
0003_xx
...

我的问题是,这是正确的做法吗?因为如果每次更改数据库模型时,都会创建一个新的迁移文件,最终我可能会拥有很多迁移文件。 那么当我想迁移到生产环境时如何迁移呢?只需运行'python manage.py migrate'?

【问题讨论】:

【参考方案1】:

是的,这是处理迁移文件的正确方法。一开始,看到经过一段时间的开发后创建了很多文件,可能会感到一点不适,但是在应用程序中创建尽可能多的迁移文件是可以的。但是不要尝试删除或更改任何迁移文件,因为每个文件都会跟踪之前完成的迁移。如果它被意外删除,您将在以后的迁移中遇到麻烦。在本地服务器中,您可以轻松摆脱它。但在生产中,大多数时候它可能是一场噩梦。或者,您可以在将代码推送到生产环境时删除除 inti.py 之外的所有迁移文件,但这是不可取的。

【讨论】:

【参考方案2】:

您必须将所有这些迁移上传到生产环境,或者您可以简单地将它们全部删除(不要删除 init.py)并在将代码推送到生产环境之前迁移一次。

【讨论】:

以上是关于Django 迁移问题的主要内容,如果未能解决你的问题,请参考以下文章

我的旧项目出现 Django 1.7 迁移问题

南迁移和 django 迁移有啥区别?

Django 迁移问题

Django 1.9 迁移问题

Django 从 2.0 迁移到 2.2(查看权限问题)

在 Django 中处理生产迁移和开发迁移