Django v1.11
PostgreSQL v9.6
目前,我使用 2 个 Google CloudSQL 数据库,一个用于开发,一个用于生产。每当我对模型进行更改时,我都会运行 python manage.py migrate
来更新开发数据库中的表。但是,此迁移不会影响生产数据库。
现在,每当我 git push
更改我的 Django 项目时,TravisCI 会自动运行测试并将代码部署到 Google App Engine。目前,它运行在 GAE 灵活的环境上(所以我可以使用 Python 3.5)
我想要的是让 Travis 或 GAE 在 runserver
之前在生产数据库上自动运行 python manage.py migrate
。但是,我不知道如何在部署期间运行自定义命令。
我尝试查看 GAE 和 Travis 文档并将脚本添加到 .travis.yml
和 app.yaml
,但无济于事。
截至目前,每当模型发生变化时,我都必须以一种非常 hacky 的方式在本地迁移生产数据库。理想情况下,GAE 将在每次部署开始时迁移。
最佳答案
不知道你有没有看到这个:
来自类似问题的引用:
How can I run a script as part of a Travis CI build?
此外,考虑嵌入源代码的数据库迁移工具,支持 Postgresql(类似于 FlywayDB 迁移):
关于python - GAE 上的 Django - 如何在部署时自动显示 'migrate'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49267877/