对于我当前的PHP / MySQL项目(由4到5名团队成员组成),我们正在使用此设置:每个开发人员在运行xamp的localhost上编码和测试,并通过SVN上传到测试服务器。
我现在的一个问题是如何同步MySQL数据库?我可能已经为项目添加了一个新表,并且PHP代码引用了它,因此我的其他团队成员需要访问该表以获取我的代码(一旦他们通过SVN获得它)才能工作。
我们并不总是在同一个办公室工作,因此在办公室中安装局域网和MySQL服务器是不可行的。所以我正在玩弄2个解决方案
在线设置测试数据库,即使从localhost编码,所有编码人员也会参考。缺点:如果您没有互联网接入,则无法测试。
以某种方式同步MySQL DB的localhost副本。那有点傻吗?如果我考虑这个,我该怎么做? (我要将哪个文件夹添加到SVN?)
(我猜一个相关的问题是如何从测试数据库中自动更新实时MySQL数据库,无论它是在远程服务器上还是通过xamp在本地托管。欢迎任何有关这方面的建议!)
答案 0 :(得分:1)
在源代码管理中维护数据库架构是完全合理的 - 实际上,大多数数据库驱动的产品都是这样做的。我不知道您的存储库是如何布局的,但只要您没有直接在根目录下的PHP代码,您就可以了。如果您在根目录下有PHP代码,我强烈建议将svn mv
放入其自己的目录中。
在源代码管理中存储数据有点问题。如果您需要数据来初始化数据库以供使用,那么确定,这是有道理的。与测试数据相同。如果您正在尝试存储实时数据,那么(这就是为什么您拥有数据库)。我不知道MySQL如何管理数据库备份,但我假设格式比长SQL脚本更紧凑(例如,Oracle为exp
格式)。
举一个现实世界的例子,这是我所研究的产品采用的方法。
当产品5岁时,我开始在公司工作,4年后离开。我从未尝试过版本1发行版,但我知道版本2.x版本可以一直升级到4.0版本(通常每4个月发布一次点发布)。