我们遇到了一个我工作的问题,因为我们变得越来越大,我们中的更多人同时在同一个项目上工作。我们使用版本控制(git)代码,所以这方面没问题。 (我们每个人都有自己的本地网站,我们有一个开发网站在线,最后一个在线制作)。
但是当谈到数据库时,我们会遇到困境。我们使用严重依赖数据库的CMS(用于电子商店)。每当我们安装一个模块时,它会写入带有自动增量ID的3或4个表,但是这个模块也可以创建文件,创建表......等等。 因此,当我们提交/推送时,那么当有人拉动时,他并没有最新的"最新的"数据库,它可能导致崩溃或奇怪的副作用错误。
另外,我们不能简单地"将所有数据库从本地复制/粘贴到本地和/或preprod到本地,因为域名,路径和其他配置也在数据库中。所以我们需要一个聪明的工具......
完美的世界将是我在我的计算机上添加一项新功能,然后我将其推送到git上,而随后拉动的人可以获得相关的(使用"忽略" on某些部分?)数据库更改与他自己的localhost合并。 (目前,我们必须在每台计算机/环境中重做相同的操作,如果我在计算机上添加一个功能并配置它,我必须在preprod上执行相同操作,但它可能会破坏其他人localhost)。 / p>
谢谢你的灯光。
答案 0 :(得分:0)
我们几年前在一个项目中遇到过类似的问题。我们使用Redgate的产品来管理多个SQLServer数据库。他们也有其他数据库。
http://www.red-gate.com/products/
该产品允许开发人员了解数据库差异,分别处理模式和数据,如果内存服务,甚至提供迁移脚本来更新模式并转换数据库中的数据。唯一的缺点是其合并能力有限。但是,了解其他人的变化确实是最重要的战斗。