使用git repo和虚拟主机设置MAMP

时间:2012-05-01 00:26:58

标签: git mamp virtualhost

我在我的机器上设置了MAMP以开发一些网站的东西,因为我想以有条理的方式分离我的项目,我为每个设置虚拟主机,这是有效的。我为/Users/Alex/Dropbox/code/projectX/等目录中的每个项目提供了我的Web文件(javascripts,css,html,php)。我的MAMP目录在其他方面与开箱即用的目录相同;所有Mysql内容都在/Applications/MAMP/db中。 \projectX\已经是一个git存储库,但我的db文件不受版本控制。

问题:如何控制与每个Web项目关联的数据库?我脑子里有三种方法,我不确定如何实施前两种方法。我更喜欢第一个,因为它看起来更简单,并且非常适合虚拟主机方案。

a)将projectX的数据库目录移动到\projectX\文件夹,然后只移动git add。我不知道如何告诉MySQL我这里有这个数据库和那个数据库。

b)以某种方式告诉git它还需要版本控制Applications\MAMP\db\mysql\projectXdb,就好像它在\projectX\内一样

c)不要花哨,只为数据库建立一个单独的存储库。

1 个答案:

答案 0 :(得分:2)

首先,我会阅读this以及他发布的链接 - 只是因为它们是一个很好的阅读。

简而言之(这可能是我对这个问题的误解),我认为将实际数据库存储到版本控制中并不是最明智的。相反,您需要决定存储控制/更改/设置数据库的数据库脚本的 system 。因此,这些脚本可以绝对存储在代码的文件结构中的任何位置。

如果这个想法有效,那么你就不必改变实际数据库的位置,而且git也不必关心实际数据库的位置。 < / p>

我建议的一个例子就是制作这样的文件:

ALTER TABLE Customer
  ADD ShoeSize int NOT NULL DEFAULT 0
GO

INSERT INTO OrderStates 
   (OrderStateID, OrderState)
   VALUES(3, 'Cancelled')
GO

然后将其存储到名为/Users/Alex/Dropbox/code/projectX/db-scripts的某个目录中。在该目录中,将是随时管理/复制数据库所需的所有脚本。

编辑:

如果软件将所有信息保存在数据库本身,那么可能运行mysqldump(或等效)并将该脚本存储到代码中。

存储文本版本允许两件事:

a)它比存储二进制文件更有效/更高效(如果我正确理解RCS / git)

b)git可以对文件进行差异和grep搜索。 (如果还有其他工具可以做到这一点可能无关紧要)