2

我很好奇是否有一个标准或开源应用程序允许一小群开发人员共享 MySQL 数据库更新/修改脚本?

现在所有的开发者都有自己的数据库实例的虚拟机,所以没有冲突,每个人都可以有单独的开发环境。当进行数据库更改时,我们将 SQL 脚本添加到 SVN 中的 SQL 文本文件中,然后每个开发人员在必要时在自己的环境中运行该文件。

我们遇到的问题是,当有人更新文件时,其他人运行脚本,然后我们添加额外的更改。如果有 ALTER 表语句等,它会变得非常混乱,我们会得到错误。

我们不想使用数据库复制,因为如果一个开发人员破坏了他们的数据库,我们不希望其他人受到影响。

我们使用 ExpressionEngine,我注意到他们使用 PHP 来检查/验证 SQL 更新,这是我们需要走的方向吗?

还有其他人处理这个问题吗?如果是这样,你最终使用了什么?

4

2 回答 2

0

也许您想要的是迁移支持。

然后,您将迁移代码放在您使用的任何CVS中,每个团队成员在他们的机器上迁移(即运行迁移脚本),这会同步所有数据库。

我使用的框架(yii)支持它,但如果您不想将整个框架带过来,我很确定有一些独立的解决方案。

于 2012-10-13T05:21:38.223 回答
0

一个相当简单的解决方案是有一个目录,而不是单个文件。然后每次开发人员进行更改时,他们都会将“补丁文件”添加到目录中。其他开发人员可以通过运行他们尚未运行的任何补丁来更新他们的数据库。

这甚至可以通过在数据库中有一个元数据表来跟踪哪些补丁已经运行并编写脚本来运行任何没有运行的补丁来实现自动化。

Lorna Mitchell 在博客中介绍了一些这样做的策略:

http://www.lornajane.net/posts/2010/simple-database-patching-strategy

http://www.lornajane.net/posts/2012/taking-on-a-database-change-process

评论是完整的,或者人们推荐了各种工具来帮助完成这个过程。就个人而言,我只有一个相当简单的脚本,不需要更大的库,但你的里程可能会有所不同。

于 2012-10-13T05:32:57.843 回答