gpt4 book ai didi

django - 如何使用 CI/CD 和 Google CloudSQL 迁移 django 中的数据库?

转载 作者:行者123 更新时间:2023-12-04 14:15:37 27 4
gpt4 key购买 nike

我在 gitlab 中有一个 django 存储库设置,我正在尝试使用 gitlab CI/CD 在谷歌云上自动构建和部署。

该应用程序必须部署在 App Engine 上,并且必须使用 CloudSQL 进行动态数据存储。

我面临的问题是在部署我的应用程序之前在数据库上执行迁移时。

我应该跑 ./manage.py migrate它连接到 cloudSQL。

我读过我们可以使用云代理连接到 cloudSQL 并迁移数据库。但这有点像黑客。有没有办法通过 CI/CD 管道脚本迁移我的数据库?

任何帮助表示赞赏。谢谢。

最佳答案

在 App Engine 标准环境中运行 Django 时,recommended处理数据库迁移的方法是运行 ./manage.py migrate直接从控制台 shell 或从您的本地计算机(需要使用云 sql 代理)。

如果您希望将数据库迁移与您的应用程序部署分离并在 Gitlab CI/CD 中运行它,您可以执行以下操作:

  • 用作基础镜像 google/cloud-sdk:latest
  • 获取凭证 gcloud auth activate-service-account --key-file $GOOGLE_SERVICE_ACCOUNT_FILE
  • 使用 wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy 下载 cloudsqlproxy并使其可执行 chmod +x cloud_sql_proxy .
  • 启动代理 ./cloud_sql_proxy -instances="[YOUR_INSTANCE_CONNECTION_NAME]"=tcp:3306 .
  • 最后,运行迁移脚本。

  • 您还可以创建一个自定义 docker 镜像,该镜像已经在幕后执行上述操作,结果是相同的。

    如果您想进一步了解此事,我建议您查看以下文章 link1 link2 .

    关于django - 如何使用 CI/CD 和 Google CloudSQL 迁移 django 中的数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60584710/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com