我应该在 .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 更新语句)。
所以你肯定想在你的版本控制中跟踪它们。
在开发过程中,一个经典的场景是
- 编写代码
- 进行迁移
- 在您的开发数据库上应用迁移
- 在本地测试更改
- 签入并将提交推送到您的生产服务器
- 在生产中执行迁移(因此只执行
python manage.py migrate
)
编辑:我忘了回答您的 docker 问题。通常,您将源代码放在容器外的一个卷中,然后将其装入容器中。所以你可以像这样进行 docker 开发。这样迁移文件就会在你的代码库中,你可以跟踪它。
这可能与
我的问题是在 docker 环境中工作时我应该如何处理这个问题,所以对于我的项目,我有一个 docker-compose.yml 和 docker-compose- deploy.yml 对于我的生产环境,显然迁移文件只在 docker 图像中生成,不包含在我的版本控制系统中。
我应该如何处理这个问题?我应该停止使用 Docker 作为我的开发环境,转而使用虚拟环境甚至机器吗?
没有。迁移文件在那里,因此您可以更新数据库而无需破坏它并从头开始重建它(或手动执行 sql 更新语句)。
所以你肯定想在你的版本控制中跟踪它们。
在开发过程中,一个经典的场景是
- 编写代码
- 进行迁移
- 在您的开发数据库上应用迁移
- 在本地测试更改
- 签入并将提交推送到您的生产服务器
- 在生产中执行迁移(因此只执行
python manage.py migrate
)
编辑:我忘了回答您的 docker 问题。通常,您将源代码放在容器外的一个卷中,然后将其装入容器中。所以你可以像这样进行 docker 开发。这样迁移文件就会在你的代码库中,你可以跟踪它。