2011-11-10 67 views
5

是否有一种很好的方式来将rails db迁移文件合并到每个表的一个文件中除了手动分割schema.rb合并数据库/迁移文件

我的大多数迁移文件都是在开发过程中创建的,并不代表实际的数据更改。由于历史原因,这些文件仍然可以在源代码管理系统上访问。保留这些不必要的文件让我感到不舒服。

回答

-4

不要打扰。旧的迁移文件没有任何伤害,并且可能使维护更容易。保持原样。

+0

只有在迁移代表真实的数据更改时,它们才会使维护更容易,事实并非如此。 – guiding5

+0

迁移文件应该表示* schema *更改,而不是数据更改等。您可以发布您想要摆脱的示例迁移吗? –

+0

删除多个不相关的列,删除不必要的索引,重命名列等。 – guiding5

13

嗯,我可以想象你想要一个干净的开始。在第一版发行版中处于项目开发模式时,您不需要单独的迁移文件。虽然他们不能明显伤害。

基本上你可以做什么,是这样的。

FIRST BACKUP您的模式和数据。

db/schema.rb包含(或应该包含)最新版本的模式。否则运行:

rake db:schema:dump 

现在你可以清理你的迁移文件夹。

然后运行:

rake db:drop 
rake db:schema:load 

的最后一个命令运行的db/schema.rb,并创建一个新的模式。这应该会带您到数据库的最后一个版本。

显示DB任务

耙-T分贝

+0

rake说“不知道如何构建任务”模式:drop'“。我使用红宝石1.9.3和铁轨3.2.9 – gfreezy

+0

抱歉是一个错字。我纠正它(耙分贝:下降) – Roger

0

您可以使用Squasher宝石所有年轻人合并迁移到一个。