我收到了一份用YII编写的应用程序,有时需要更新版本。目前,当我们发布新的更新时,我们手动运行一个shell脚本来复制/覆盖我们的git仓库中的应用程序代码/源文件并设置相应的权限和其他东西,然后在脚本的末尾,我们运行一个YII命令运行我们的数据库更新。我们对数据库更新进行了版本控制。如果版本的某个sql语句失败,我们还会将更改回滚到数据库。现在问题是,如果数据库更新失败,并且应用程序代码/源已更新,那么当它尝试访问某些表字段,表或视图时,它将失败。
如何通过版本控制最好地处理应用程序更新?就像wordpress处理更新或更好的方式一样。
想要获得有关rigth方法的建议,它可能包括RPM,GIT或其他信息。 从你们那里得到详细的流程清单会很好。 感谢。
答案 0 :(得分:0)
数据库更新可能包括备份,运行多个脚本,以及 应该在rpm包装之外处理。故障模式太多了 使RPM脚本能够完美地处理。
您始终可以在程序包中打包数据库架构更新脚本 然后在应用程序启动时检查正确的架构版本, 提供有关如何升级的指令(或指令指针) 数据库,以及如何重新安装最后已知的好应用程序,当错误 检测到架构版本。