php - 是否有在开发组中共享数据库 SQL 更改的标准?

标签 php mysql sql development-environment

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

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

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

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

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

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

最佳答案

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

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

Lorna Mitchell 在博客中介绍了一些执行此操作的策略:

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

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

评论已满或有人推荐各种工具来帮助完成该过程。就个人而言,我只有一个相当简单的脚本,不需要更大的库,但您的情况可能会有所不同。

关于php - 是否有在开发组中共享数据库 SQL 更改的标准?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12870085/

相关文章:

javascript - 在没有提交按钮的情况下获取下拉列表的选定值

php - PayPal 引用交易 - 响应状态代码 400

php - 用递归简化这个方法

.net - 如何将日期时间插入SQL数据库表中?

php - PHP 和 MySQL 中的高性能加密/解密

mysql - SQL 语法错误 1064

mysql - 格式化 11/16/2002 12 :00:00 PM to date time stamp in MySQL

MySql WorkBench AES 256 解密

sql - 如何创建函数返回值直至第一个非数字/小数字符

php - Woocommerce - 我可以汇总每个用户订购的特定产品的数量吗?