【问题标题】:How would you implement an auto-update for a standalone PHP project using GitHub?您将如何使用 GitHub 为独立的 PHP 项目实现自动更新?
【发布时间】:2011-09-09 15:29:37
【问题描述】:

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

之前我一直向用户发送一个指向压缩存档的链接并让他们覆盖它,但自从我尝试使用 GitHub 后,我意识到还有更好的方法;即 GitHub 中的服务挂钩。但是,只要我不以任何方式更改数据库,这将可以正常工作,这是一个很好的可能性。

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

我希望对此有一些意见!

【问题讨论】:

  • SQL文件需要结构和数据吗?
  • @TarekFadel 实际上不一定是 sql 文件。我更多地考虑的是一个 PHP 文件,它将执行一些 SQL 查询以使用新结构、插件、字段等更新当前数据库。

标签: php github versioning auto-update


【解决方案1】:

这是我将如何解决这个问题(不是最优雅或最高效的):

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

除了查询数据库之外,您还可以拥有一个由您的数据库接口 PHP 文件生成的文件(并被 .gitignore 忽略),您可以像上面一样。

【讨论】:

  • 这是我最初的想法,但你完成了我的思路。谢谢你:)
【解决方案2】:

我真的建议您查看Doctrine 及其migration feature

这正是您所寻找的,而且您获得了一个非常好的工具来处理数据库处理的所有其他方面。

【讨论】:

  • 感谢您的提示。我会调查的:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-01
  • 2010-12-22
  • 2012-04-08
  • 2018-08-20
相关资源
最近更新 更多