我在 Github 存储库中有一个 Django 应用程序。通过 Github 操作,它被部署为 Azure 中的 Python 应用程序。
在 Azure 门户中:
1- 在“配置 > 应用程序”设置中,我将 POST_BUILD_COMMAND 定义为
python manage.py makemigrations && python manage.py migrate
如 Configure a Linux Python app for Azure App Service 中所述.
2-我已经配置了部署槽和生产槽。它提供了一个“交换”选项,用于将部署槽中的实时应用程序推送到生产环境。
但是,我的印象是,这样做不会为生产 Django 应用程序运行 POST_BUILD_COMMAND 命令,从而使数据库保持不变 - 这意味着生产前端获取新字段/更新,但迁移不会t发生。
在生产环境中执行迁移的最佳方法是什么? 正确的方法是将“配置>常规设置>启动命令”设置为“python manage.py makemigrations && python manage.py migrate”吗?这行得通吗?
最佳答案
执行迁移的最佳方法是使用 YAML 配置。
当我们在生产中需要安装库时,迁移时要小心,因为我们需要忽略 venv 文件夹。
使用实时数据创建开发环境,并确保在azure门户上添加数据库的环境变量
一旦我们为数据库创建了环境变量,我们就可以将实时数据发送到dev环境中。
创建生产环境存储库,而不是再次从 GitHub 创建连接,而是从开发存储库转移。
将父存储库设为 prod 存储库的 dev 存储库。使用您在文档中使用的相同方法。
根据环境变量配置管道。
创建自动化程序以定期更新生产环境。
python 管理.py makemigrations && python 管理.py 迁移
使用上面的代码块对dev执行操作。使用 Azure 门户终端创建 YAML 文件并更改参数。
- 这也可以通过 VS Code 执行。 (最好的方法)
Document ,是该过程的完美流程引用。
GitHub -> Azure Dev 存储库 -> 备份 -> 创建 Prod 存储库 -> 从 Dev 迁移到 Prod -> 排除 gitignore文件夹
关于python - 将 Django 应用程序部署到生产环境 - Azure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72714385/