0
我有一系列迁移以便在即将发布的版本上进行重构。一些迁移用于移动列。Rails:当我单独运行一个迁移时,但不能与其他迁移系列一起运行
当我一次运行全部迁移时,以下示例中的特定列永远不会复制到新位置。
def up
add_column :buy_topics, :price, :integer
say_with_time 'Move price and value to buy/topics' do
bar = ProgressBar.new(Buy::Topic.count)
Buy::Topic.includes{topic}.find_each do |topic|
topic.price = topic.topic.price
topic.save
bar.increment!
end
end
remove_column :topics, :price
end
尽管未复制值,但仍然可以成功创建并删除列。
但是,如果我将所有迁移迁移至此之前的迁移(例如rake db:migrate VERSION=XXXXXXXXn-1
),然后手动运行此特定迁移(rake db:migrate VERSION=XXXXXXXXn
),则会复制这些值。
因此,在总结,如果我单独运行迁移它的工作,否则将无法正常工作
可能是什么这背后的原因是什么?
谢谢,它的工作原理。我想如果没有这个,孤立的单一迁移也不应该起作用。我猜桌子底下会发生更多事情。 – lulalala 2012-03-20 02:46:11