我管理一些K-12学校和一些大学使用的开源PHP / MySQL Web应用程序。我也是该项目的唯一开发人员。虽然它过去只不过是我老板托管的应用程序的源代码下载,但在过去的一年中,我一直致力于将其变成一个“真正的”开源项目,其中包含文档,带编号的发行版,公共变更日志等。
我正在寻求改善升级过程,其中一个潜在的难题(尤其是对于IT专业人员匮乏的学校而言)是在两个发行版之间对数据库架构的更改。它们不经常发生或变化不大,但我希望您对此过程提出建议。
当前,我维护一个基本的SQL安装脚本,以在新安装中设置数据库。这包括当前版本的完整架构;全新安装不需要任何进一步的操作。版本之间发生的更改存储在upgrade-$releasever.sql
脚本中,对于所有被跳过的版本,有必要增量运行所有升级脚本。
Shell脚本不合适,因为我们很多用户都在没有Shell访问权限的主机上运行。由于其他优先事项,不太可能实现基于PHP浏览器的复杂安装程序/升级脚本。但是,我想使用基于浏览器的PHP脚本来简化升级。关于如何处理的建议?