【发布时间】:2016-04-12 17:33:17
【问题描述】:
通过在其中一个 App Engine 应用程序中移动一些属性,我更新了几个频繁使用的 NDB 模型。因此,一些模型现在包含我的应用程序的以前版本会在不同位置查找的数据(但这样做会失败)。我已经更新了我的处理程序,以确保在我运行伴随我发布的迁移之后不会发生这种情况。
但是,我担心架构迁移时会发生什么。我已经用几百个实体在本地测试了我的迁移,任务大约需要 1 秒(使用延迟的)。由于我有超过 1000 个生产实体,我想这个任务实际上需要几秒钟。同时,我相信用户会遇到服务问题。
从其他问题(例如this one)中,我收集到一个好的做法是将用户重定向到一个页面,该页面会提醒他们计划停机进行维护。但是,这对我来说并不是一个真正的选择——我们需要尽可能延长正常运行时间。
因此,我的问题是:有没有办法让我的应用程序保持在线并仍然执行可能很长的迁移?我正在考虑使用 App Engine 的“流量拆分”在新应用版本迁移时让用户继续使用旧应用版本,但这仍然会导致服务问题。
【问题讨论】:
标签: google-app-engine database-migration google-cloud-datastore