暂时禁用我的 Google App Engine 应用程序以便我可以执行架构迁移的推荐方法是什么?

shi*_*ino 6 google-app-engine schema-migration

我想禁用用户对我的应用程序的访问,以便我可以执行架构迁移。我研究了几种可能性并发现了可能的缺点:

  1. 禁用数据存储写入 - 我宁愿关闭我的整个应用程序,以便人们看不到任何错误等。此外,我认为禁用写入将阻止我执行迁移。

  2. 禁用应用程序 - 我不清楚这只会对我的用户禁用它,使我无法执行迁移。我也不确定禁用/启用周转时间。

  3. 将我的域名重定向到一个临时页面 - 我的应用程序仍然可以在 appspot.com 上访问

  4. 上传我的应用程序的新版本,除了定向到“暂时关闭”页面之外,它不会响应请求。

有什么建议?

som*_*ne1 3

建议 4 似乎可能是做到这一点的最佳方法。某些框架具有“维护模式”,其中所有传入请求都将被重定向到指示站点因维护而关闭的页面。如果您的框架不支持这种模式,您只需上传应用程序的新版本(可能称为 version maintenance)并切换到该版本作为新的默认版本。此版本可能是一个空应用程序,其中所有传入请求都将转到“维护页面”,表明该网站已关闭以进行维护。然后手动转到包含迁移代码的应用程序版本并执行它(http://<version>.<appname>.appspot.com)。完成迁移后,将应用程序默认版本切换到具有新架构的新版本。

解释你的其他想法

  1. 禁用写入甚至会阻止您在应用程序上进行写入。我相信这更多的是为了从一个应用程序迁移到另一个应用程序或“冻结”数据存储的其他应用程序。
  2. 禁用该应用程序将使该应用程序完全关闭
  3. 重定向您的域会导致迁移出现 DNS 延迟,这可能需要 48 小时才能完全传播(切换到临时页面,然后切换回新版本)
  4. 如前所述,恕我直言,这将是最好的方法。