0

我看过http://github.com/muness/migration_sql_generator,但它不能与 MySQL 一起正常工作以进行某些重要操作。有没有其他方法可以捕获在 Rails 迁移期间生成的 sql?

我问的原因是我无法在生产服务器上运行迁移,因为它是由我公司的技术支持人员维护的(并且从未被开发人员接触过)。开发人员向技术支持人员提供了一个 JRuby on Rails 战争文件,并通过 Tomcat 进行部署。但是说服技术支持来安装 JRuby 和 Rails 只是为了在生产环境中运行迁移绝对不是一件容易的事。我们希望保持部署非常简单,并且尽可能少的依赖。

我们只想为他们提供一个war文件和一个带有db更改的sql脚本。

4

2 回答 2

1

您也许可以使用某种工具来生成两个数据库的差异。这里有一个问题。

如果在运行迁移之后将测试数据库与开发数据库进行比较,这可能是最简单的方法。甚至可能值得添加一个 rake 任务来完成它;让该 rake 任务依赖于迁移,然后您可以使用新任务而不是rake db:migrate每次迁移时生成差异。

于 2010-09-14T21:38:28.297 回答
0

实际上,我最终创建了一个 rake 任务,该任务对 Activerecord 的 sql 执行方法进行了猴子修补,以便还将所有 sql 输出到日志文件 ( log/database.log)。因此,该任务可以db:migrate像这样在之前运行:rake db:log db:migrate. 之后,您可以提取相关的语句并将它们放入一个db/sql_migrations/<migration name>.sql文件中,并让您的数据库管理员在准备好时运行它们。

谢天谢地,我换了工作,不必再处理那一团糟的过程了。:)

于 2011-03-10T19:58:02.103 回答