我应该在 .dockerignore /.gitignore 文件中添加 Django 迁移文件吗?

Should I be adding the Django migration files in the .dockerignore /.gitignore file?

这可能与 问题重复。

我的问题是在 docker 环境中工作时我应该如何处理这个问题,所以对于我的项目,我有一个 docker-compose.yml 和 docker-compose- deploy.yml 对于我的生产环境,显然迁移文件只在 docker 图像中生成,不包含在我的版本控制系统中。

我应该如何处理这个问题?我应该停止使用 Docker 作为我的开发环境,转而使用虚拟环境甚至机器吗?

没有。迁移文件在那里,因此您可以更新数据库而无需破坏它并从头开始重建它(或手动执行 sql 更新语句)。

所以你肯定想在你的版本控制中跟踪它们。

在开发过程中,一个经典的场景是

  1. 编写代码
  2. 进行迁移
  3. 在您的开发数据库上应用迁移
  4. 在本地测试更改
  5. 签入并将提交推送到您的生产服务器
  6. 在生产中执行迁移(因此只执行 python manage.py migrate

编辑:我忘了回答您的 docker 问题。通常,您将源代码放在容器外的一个卷中,然后将其装入容器中。所以你可以像这样进行 docker 开发。这样迁移文件就会在你的代码库中,你可以跟踪它。