python - GAE 上的 Django - 如何在部署时自动显示 'migrate'?

标签 python django google-app-engine google-cloud-platform travis-ci

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.ymlapp.yaml,但无济于事。

截至目前,每当模型发生变化时,我都必须以一种非常 hacky 的方式在本地迁移生产数据库。理想情况下,GAE 将在每次部署开始时迁移。

最佳答案

不知道你有没有看到这个:

Travis CI Script Deployment

来自类似问题的引用:

How can I run a script as part of a Travis CI build?

此外,考虑嵌入源代码的数据库迁移工具,支持 Postgresql(类似于 FlywayDB 迁移):

Yoyo database migrations¶

关于python - GAE 上的 Django - 如何在部署时自动显示 'migrate'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49267877/

相关文章:

python - 尝试使用 BeautifulSoup4 从类(class)中获取某些链接

python - django postgresql - 额外的日期时间

django - __init__() 缺少 1 个必需的位置参数 : 'model_field'

mysql - 使用 mysqli_connect() 将 Wordpress 连接到 Google App Engine 上的 Cloud SQL

用于模糊匹配的 Python 哈希表

python - 与 parent 一起杀死 child

python - 如何从相应的列表中删除值?

jquery - django-autocomplete-light - 如何返回与模型主键不同的字段?

javascript - Python 中的 jQuery $.param'ed 字符串解析(应用引擎)

java - 无法使用 GAE Java API 删除域共享联系人