docker - 将每个部署上的数据库迁移到 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 部署中迁移数据库是否有其他最佳实践?
解决方案
在 Google App Engine 和 Cloud SQL 上使用 Django 执行数据库迁移。它有一个免费层,足以满足大多数小型企业和爱好网站的需求,并且非常易于部署和维护。其中一些网站是用推荐的 Python Web 框架 Django 编写的。
使用 Cloud SQL 数据库针对您的 App Engine 标准实例执行 manage.py migrate 命令
有一个解决方案/解决方法:您可以从本地计算机连接到 Cloud SQL 并在本地计算机上执行 manage.py 迁移,但要对您的云实例进行更改。
为此,您需要将 Cloud SQL 数据库添加到设置文件中。您的生产实例可能正在使用套接字,但在您的本地计算机上,您需要使用 IP 地址:
推荐阅读
- spring-boot - 使用也是关键字的函数
- android - 在 ListView 中包含的 ImageView 中使用 OnTouchListener
- android - 向谷歌和苹果商店发布应用程序的“副本”
- python - 将分组记录转换为 DataFrame
- hibernate - 如何验证 Hibernate c3p0 是否正常工作
- c++ - 无法从 qml 调用 c++ 方法:“对象的属性不是函数”
- javascript - 节点在完全有效的正则表达式上失败
- python - 如何将 lambda 函数分解为自己的函数?(Lambda 目前超过 125 个字符)
- tensorflow - 在 TensorFlow 中重置图形
- java - 如何根据 HTML 为输入元素构造 CSS 选择器