在Rails中填充新添加的列

时间:2011-01-03 19:00:46

标签: ruby-on-rails database populate fill

我已通过迁移将新列默认添加到数据库中名为 property 的表中。

class AddDefaultToProperty < ActiveRecord::Migration
  def self.up
    add_column :property, :is_default, :boolean
  end

  def self.down
    remove_column :property, :is_default
  end
end

默认列包含布尔值,表示属性是否为默认值。现在我需要一种方法来为某些特定行填充该列。哪个是完成此任务的最佳方式?默认属性可能会在不久的将来发生变化,因此我需要一些灵活的方法来考虑这种情况。

使用RAILS 2.3.10

谢谢!

2 个答案:

答案 0 :(得分:2)

这取决于。如果它是迁移的一个组成部分,并且您希望在迁移完成后立即提供这些数据,那么您应该将该脚本直接放入迁移中。如果数据可用性可以等待,您还可以选择创建rake任务来填充数据 - 好处是您的迁移速度更快,rake任务是可选的 - 缺点是您必须手动运行它。 / p>

答案 1 :(得分:0)

我会重新改变迁移中的数据。这可确保进一步的迁移始终按预期工作。

但是,始终确保您创建自己的模型以便在迁移中使用,否则新模型和旧模式之间的冲突将为您提供。

只需将此行添加到迁移的顶部:

class Property < ActiveRecord::Base; end