首页 > 解决方案 > 将每个部署上的数据库迁移到 gcloud

问题描述

我有一个 gcloud 应用程序配置为使用 app.yaml 中的 Cloud SQL 实例:

beta_settings:
  cloud_sql_instances: <instance-name>

在我部署应用程序后,/cloudsql/<instance-name>它可用并且可以通过套接字文件连接到数据库。

为了在每个部署中迁移数据库模式,我需要一个部署命令Dockerfile

RUN yarn run sequelize db:migrate

但是,执行/cloudsql时不可用Dockerfile

RUN ls /cloudsql导致ls: /cloudsql: No such file or directory.

/cloudsql在这种情况下提供什么方法​​?在 gcloud 部署中迁移数据库是否有其他最佳实践?

标签: dockergoogle-cloud-platformgoogle-cloud-sql

解决方案


在 Google App Engine 和 Cloud SQL 上使用 Django 执行数据库迁移。它有一个免费层,足以满足大多数小型企业和爱好网站的需求,并且非常易于部署和维护。其中一些网站是用推荐的 Python Web 框架 Django 编写的。

使用 Cloud SQL 数据库针对您的 App Engine 标准实例执行 manage.py migrate 命令

有一个解决方案/解决方法:您可以从本地计算机连接到 Cloud SQL 并在本地计算机上执行 manage.py 迁移,但要对您的云实例进行更改。

为此,您需要将 Cloud SQL 数据库添加到设置文件中。您的生产实例可能正在使用套接字,但在您的本地计算机上,您需要使用 IP 地址:

https://medium.com/@mrdatainsight/performing-database-migrations-with-django-on-google-app-engine-and-cloud-sql-c7fd298581b4


推荐阅读