MySQL 版本控制与 Subversion



有没有集成的解决方案?

如果我创建一个名为 mysql 的文件夹并在每次进行重大更改时将 sql 转储到那里,它会起作用吗?

Subversion是完美的,但是你如何处理db部分?有人可以解释一下他们的工作流程吗?

谢谢!

我正在使用简单的批处理文件将任何更改导出/导入到数据库/从数据库导入任何更改。刚刚创建了包含以下文件的其他文件夹_db:

导入.bat:

if exist c:mysqlbinmysql.exe goto work1
exit
:work1
C:mysqlbinmysql.exe -u root --default-character-set=utf8<C:project_dbdbName_dc.sql
C:mysqlbinmysql.exe -u root -D dbName --default-character-set=utf8<C:project_dbdbName.sql
pause
exit

出口.bat

if exist c:mysqlbinmysql.exe goto work1
exit
:work1
C:mysqlbinmysqldump.exe -u root --default-character-set=utf8 dbName>C:project_dbdbName.sql
C:mysqlbinmysqldump.exe -u root -d --default-character-set=utf8 dbName>C:project_dbdbName_struct.sql
pause
exit

dbName_dc.sql

/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
DROP DATABASE IF EXISTS `dbName`;
CREATE DATABASE `dbName`;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;

为类似 unix 的系统编写类似的文件不是问题。

你可能想了解Scott Ambler和ThoughtWorks对敏捷数据库所做的工作,看看你的想法:

http://www.amazon.com/s/ref=nb_sb_ss_i_0_14?url=search-alias%3Dstripbooks&field-keywords=agile+database+techniques&sprefix=agile+database%2Cstripbooks%2C131

Ruby on Rails使用一种称为迁移的技术来跟踪数据库模式中的更改。它会自动创建一个名为development_structure.sql的文件(如果它不存在,你可以通过调用rake db:structure:dump来创建它)。如果每次进行重大更改时都在SVN中提交或签入此文件,则会将数据库更改存储在SVN中。它包含如下的创建表命令:

CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `login` varchar(255) NOT NULL,
  `email` varchar(255) DEFAULT NULL,
  ..
)

最新更新