我的项目是使用MySQL作为数据库的PHP脚本集合,需要使用WAMP/LAMP/MAMP在本地安装。
以前我一直在向用户发送一个链接到压缩档案,并让他们覆盖它,但自从我冒险到GitHub,我已经意识到有更好的方法;也就是GitHub中的Service Hooks。然而,只要我不以任何方式改变数据库,这将工作得很好,这是一个很好的可能性。
我一直在玩弄如何实现这个想法,但我找不到一个明确的解决方案。到目前为止,我得出的结论是,我需要有一个目录(比如update/),其中包含每次更新的.sql文件。然后,PHP脚本将检查该目录中与新版本号对应的文件(不确定我将如何定义版本号;我正在考虑使用提交ID,但这将不可用,直到提交后,所以…)。
我想听听你的意见!
我将如何处理这个问题(不是最优雅或性能最好的):
- 在数据库中添加一个带有版本号 的标志
- 在DB层PHP文件中添加最小版本号
- 检查DB版本是否大于最小版本
- 如果是:继续你的业务
- Else:运行
update/
中的PHP文件,该文件将包含一系列要在DB服务器上运行的ALTER TABLE
命令- 将DB中的最小版本号更新为最新的版本号
都
或者,代替查询DB,你可以有一个由DB接口PHP文件生成的文件(用.gitignore忽略),你可以像上面一样。
我非常推荐你看看Doctrine和它的迁移特性。
这正是你想要的,而且你得到了一个非常好的工具来处理数据库处理的所有其他方面。