我不能在我的生活中找到有关如何使用Google App Engine和CloudSQL处理迁移的文档。我正在使用Go运行时。什么是GAE的最佳迁移策略CloudSQL
很明显,应用程序的模式会随着时间的推移而改变和发展,并且需要运行迁移。目前我手动运行迁移。这不可扩展。
有没有人有解决方案?
我看到一些具体的挑战:
我可以使用VersionID当前
app.yaml
部署版本的版本。但是,如何检查此版本是否发生迁移?我将不得不在一个数据库表中保留一个版本号,并在init()
函数中检查该版本号?但是,当您上传应用程序的新版本,新的架构GAE会慢慢migrate your traffic这意味着一旦
init()
在新版本的第一个实例运行,迁移完成后,流量旧版本会在这些数据库事务中失败。我可以通过版本控制API来缓解上述问题。但是,这最后会限制迁移策略,如删除表等
,我很失望,也没有这方面的documentation据我可以告诉。
我不认为有任何特定的环境问题。 Cloud SQL只是mysql,gae就是您运行代码的地方。 –
至少有一个可能感兴趣的特例:http://stackoverflow.com/questions/34670194/handling-schema-migrations-in-app-engine –
@DanCornilescu谢谢!但是,这似乎是数据存储实体。 –