如何在Google App Engine灵活部署步骤中运行Django迁移?

时间:2018-03-21 18:02:07

标签: django google-app-engine django-migrations

我有一个Django应用程序并且在Google App Engine中灵活运行。我知道如何使用云代理或通过设置DATABASES值来运行迁移,但我希望通过在部署步骤中执行迁移来自动运行迁移。但是,似乎没有办法在部署之前或之后运行自定义脚本。

我提出的唯一方法是在entrypoint命令中执行此操作,您可以在app.yaml中设置:

entrypoint: bash -c 'python3 manage.py migrate --noinput && gunicorn -b :$PORT app.wsgi'  

这感觉很像做错了。很多谷歌搜索没有提供更好的答案。

1 个答案:

答案 0 :(得分:1)

在app.yaml文件中定义python3 manage.py migrate命令会在每次生成新实例并设置为提供流量时运行。虽然从技术上讲这可能不是问题(如果数据库架构没有改变就不会发生迁移),这不是声明它的正确位置。

您希望此命令在每个新版本代码推送时运行一次。这非常适合CI / CD方法。例如,使用Bitbucket PipelinesTravis CI的Google Cloud在线文档有几个教程,但您可以使用许多其他CI / CD解决方案。