2

我正在使用 MODx CMS 并想使用 git 进行合作。但是,如您所知,MODx 将一些代码位置存储在数据库中。所以,我想知道,除了倾销之外,如何对 MySQL 进行联合工作?谢谢

4

3 回答 3

1

听起来您可能在谈论存储过程和/或用户定义的函数?

无论如何,最好的方法是 mysqldump - 大概,您不需要数据,只需要存储的过程、用户定义的函数,也许还有表结构。mysqldump 有一些选项可以控制输出的内容。

于 2013-01-15T22:16:18.643 回答
1

您需要以某种格式存储数据库,并且它不能是 SQL,因为您不能只告诉实时数据库使用 SQL 文件更新架构。

基本上,您必须存储一组更新数据库的增量命令。在这种情况下,Git 不会真正帮助您,您将不得不使用自己的系统。

实现这一点的最简单方法是仅对数据库版本进行编号并仅将更改存储在您最喜欢的编程语言中。


第 1 步:将当前数据库版本存储在某处。

第 2 步:将数据库的所有更新存储在文件中。

update/mysql_1_to_2.py
update/mysql_2_to_3.py
# etc

第三步:创建初始数据库

update/mysql_0_to_1.py

如果您使用该系统,您需要做的就是跟踪当前使用的版本和代码中最新的版本。当您需要更新时,只需运行所有mysql_x_to_y脚本即可完成版本控制。mysql_0_to_1可以进行初始引导,如果您设法达到 1000 次修订,只需使用mysql_0_to_1000走捷径。

我上面概述的系统应该非常适用于线性存储库,但可能有点难以用于树(分支、多个开发人员等)。我相信你可以想出一些东西。

于 2013-01-15T22:29:51.237 回答
0

如果你想将数据库的版本控制添加到代码的版本控制中,你必须在 Liquibase 看到。为避免再次重复所有内容,我较早的有关主题的完整答案

于 2013-01-15T23:26:31.463 回答