我正在为不同物理位置的一组用户设计一个小型应用程序。该应用程序将连接到云中的中央数据库(嗯,在中央服务器上——想想云,但不是真正的云)。数据库集中保存,以方便在中央位置进行备份。我是一位经验丰富的开发人员,连接方法、代码和其他因素确实不是问题。
但是,当用户认为合适时,我需要允许将应用程序升级到较新的版本——而不是按照任何时间表。在新的更新中,数据库架构可能会发生变化。所以我将遇到用户A下载新版本并升级数据库的问题。用户 B、C 和 D 在尝试访问数据库时会出现错误,因为表/视图可能不存在。
我考虑过在同一台服务器上维护不同的数据库。当用户 A 升级时,我们会将他们的数据库值从 DB_V1“推送”到 DB_V2,他们将使用那个。用户 B、C 和 D 在决定升级之前仍然可以使用 DB_V1。最终,当所有用户都从该数据库升级后,可以删除 DB_V1。
我可以对在云应用程序中处理此问题的最佳方法有一些想法吗?当客户端可能使用不同的版本时,通常如何完成/处理数据库更新?