Sak*_*tel 4 django continuous-integration continuous-deployment google-cloud-sql gcloud
我在 gitlab 中有一个 django 存储库设置,我正在尝试使用 gitlab CI/CD 在谷歌云上自动构建和部署。
该应用程序必须部署在 App Engine 上,并且必须使用 CloudSQL 进行动态数据存储。
我面临的问题是在部署应用程序之前在数据库上执行迁移时。
我应该运行./manage.py migrate它连接到cloudSQL。
我读到我们可以使用云代理连接到cloudSQL并迁移数据库。但这有点像黑客。有没有办法通过 CI/CD 管道脚本迁移我的数据库?
任何帮助表示赞赏。谢谢。
小智 5
在 App Engine 标准环境中运行 Django 时,建议的./manage.py migrate数据库迁移方法是直接从控制台 shell 或本地计算机运行(这需要使用云 sql 代理)。
如果您希望数据库迁移与应用程序部署分离并在 Gitlab CI/CD 中运行它,您可以执行以下操作:
google/cloud-sdk:latestgcloud auth activate-service-account --key-file $GOOGLE_SERVICE_ACCOUNT_FILEwget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy使其可执行chmod +x cloud_sql_proxy。./cloud_sql_proxy -instances="[YOUR_INSTANCE_CONNECTION_NAME]"=tcp:3306。您还可以创建一个自定义的 docker 映像,该映像已经在幕后执行上述操作,结果是相同的。
如果您想进一步了解此事,我建议您查看以下文章link1 link2。
| 归档时间: |
|
| 查看次数: |
1903 次 |
| 最近记录: |