这似乎是每个 Web 应用程序中不断出现的问题。您正在改进后端代码,并且需要更改数据库中的表才能这样做。在开发系统上手动执行没有问题,但是当您将更新的代码部署到生产服务器时,它们也需要自动更改数据库表。
我见过各种处理这些情况的方法,都有各自的好处和问题。粗略地说,我得出了以下两种可能性;
专用更新脚本。需要手动启动更新。要求以预定义的顺序完成所有表更改(严格的发布计划,数据库上没有简单的快速修复)。通常需要维护一个单独的更新过程以及一些记录和管理版本号的方法。好处是它不会影响正在运行的代码。
在运行时检查表属性并在需要时更改它们。无需手动交互,表更改可能以任何顺序发生(因此对数据库的快速修复很容易部署)。另一个好处是代码通常更容易维护。明显的问题是它需要检查表属性的次数比它需要的多得多。
是否有任何其他一般可能性或方法来处理在应用程序更新时更改数据库表?