rails:在没有给定版本的情况下,有没有办法在上次迁移之前运行三次迁移

时间:2013-08-29 13:07:34

标签: ruby-on-rails ruby-on-rails-3

我有不同的迁移文件

20120205111326_change_users_login_limit.rb
20120223110929_change_attachments_container_defaults.rb
20120223110300_change_locals_container_defaults.rb 20120223110301_change_position_tracs.rb

我希望在上次迁移之前运行201202051113262012022311092920120223110300的迁移,但条件是它不应指向其迁移VERSION数字...

有没有办法做到这一点......请建议我......

提前谢谢

1 个答案:

答案 0 :(得分:1)

有一种方法,通过rails console运行迁移

require "db/migrate/20120205111326_change_users_login_limit.rb"
ChangeUsersLoginLimit.change # or 'up' or 'down' whatever method of that migration you want to run.

为所有迁移做同样的事情(不要忘记按顺序进行)

修改

Rails实际上并没有提供一种运行迁移的方法。或通过更改顺序运行它们。 迁移文件实际上是一个包含单个类的ruby程序。因此,您始终可以创建rake任务,并且需要迁移到rake任务并以自定义逻辑顺序运行它们。所有迁移都是带有方法的类。