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

3
我的项目是使用MySQL作为数据库的PHP脚本集合,需要使用WAMP/LAMP/MAMP在本地安装。
以前我一直向用户发送一个压缩文件的链接并让他们覆盖它,但自从我开始使用GitHub后,我意识到有更好的方法;即GitHub中的服务钩子。然而,在不改变数据库的情况下,这将很好地工作,但这是一个很大的可能性。
我一直在考虑如何实现这个想法,但我找不到明确的解决方案。到目前为止,我得出结论,我需要有一个包含每个更新的.sql文件的目录(比如update/)。然后,PHP脚本将检查该目录是否存在与新版本号对应的文件(我还不确定如何定义版本号;我考虑使用提交ID,但那只有在提交之后才可用,所以...)。
我希望能得到一些关于此事的建议!

SQL文件需要同时包含结构和数据吗? - Tarek Fadel
@TarekFadel 实际上它不必是一个 SQL 文件。我想更多地考虑一个 PHP 文件,该文件将执行一些 SQL 查询以更新当前数据库的新结构、插件、字段等。 - John Doe
2个回答

2
这里是我处理这个问题的方法(不一定是最优雅或最高效的):
  1. 在数据库中添加一个带有版本号的标识
  2. 在您的数据库层PHP文件中添加最小版本号
  3. 检查数据库版本是否大于最小版本
    • 如果是:继续进行业务
    • 否则:在update/中运行PHP文件,该文件将在DB服务器上运行一系列ALTER TABLE命令
      • 更新DB中的最小版本号为最新版本号
  4. 完成所有操作
或者,您可以生成一个文件,由您的DB接口PHP文件生成(并通过.gitignore忽略),然后像上面一样执行。

这是我的最初想法,但你完成了我的思路。谢谢 :) - John Doe

1

我非常推荐查看Doctrine及其迁移功能

这正是您所需要的,而且您还可以获得一个非常好用的工具来处理数据库的所有其他方面。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接