将每个部署上的数据库迁移到gcloud

时间:2019-07-04 16:51:24

标签: docker google-cloud-platform google-cloud-sql

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

beta_settings:
  cloud_sql_instances: <instance-name>

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

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

RUN yarn run sequelize db:migrate

但是执行/cloudsqlDockerfile不可用。

RUN ls /cloudsql指向ls: /cloudsql: No such file or directory

在这种情况下如何使/cloudsql可用? 在gcloud部署中还有其他最佳实践来迁移数据库吗?

1 个答案:

答案 0 :(得分:0)

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

针对您的App Engine标准实例的

manage.py migration命令,带有Cloud SQL数据库

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

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

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