1

是否有任何集成解决方案?

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

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

谢谢!

4

3 回答 3

2

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

导入.bat:

if exist c:\mysql\bin\mysql.exe goto work1

exit

:work1
C:\mysql\bin\mysql.exe -u root --default-character-set=utf8<C:\project\_db\dbName_dc.sql
C:\mysql\bin\mysql.exe -u root -D dbName --default-character-set=utf8<C:\project\_db\dbName.sql
pause
exit

出口.bat

if exist c:\mysql\bin\mysql.exe goto work1

exit

:work1
C:\mysql\bin\mysqldump.exe -u root --default-character-set=utf8 dbName>C:\project\_db\dbName.sql
C:\mysql\bin\mysqldump.exe -u root -d --default-character-set=utf8 dbName>C:\project\_db\dbName_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的系统编写类似的文件不是问题。

于 2012-05-08T16:41:19.080 回答
1

您可能想了解 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

于 2012-05-08T15:48:19.110 回答
1

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

CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `login` varchar(255) NOT NULL,
  `email` varchar(255) DEFAULT NULL,
  ..
)
于 2012-05-08T15:57:23.177 回答