如何使用GitHub实现独立PHP项目的自动更新?



我的项目是使用MySQL作为数据库的PHP脚本集合,需要使用WAMP/LAMP/MAMP在本地安装。

以前我一直在向用户发送一个链接到压缩档案,并让他们覆盖它,但自从我冒险到GitHub,我已经意识到有更好的方法;也就是GitHub中的Service Hooks。然而,只要我不以任何方式改变数据库,这将工作得很好,这是一个很好的可能性。

我一直在玩弄如何实现这个想法,但我找不到一个明确的解决方案。到目前为止,我得出的结论是,我需要有一个目录(比如update/),其中包含每次更新的.sql文件。然后,PHP脚本将检查该目录中与新版本号对应的文件(不确定我将如何定义版本号;我正在考虑使用提交ID,但这将不可用,直到提交后,所以…)。

我想听听你的意见!

我将如何处理这个问题(不是最优雅或性能最好的):

  1. 在数据库中添加一个带有版本号
  2. 的标志
  3. 在DB层PHP文件中添加最小版本号
  4. 检查DB版本是否大于最小版本
    • 如果是:继续你的业务
    • Else:运行update/中的PHP文件,该文件将包含一系列要在DB服务器上运行的ALTER TABLE命令
      • 将DB中的最小版本号更新为最新的版本号

或者,代替查询DB,你可以有一个由DB接口PHP文件生成的文件(用.gitignore忽略),你可以像上面一样。

我非常推荐你看看Doctrine和它的迁移特性。

这正是你想要的,而且你得到了一个非常好的工具来处理数据库处理的所有其他方面。

最新更新