0

我通过迁移向数据库中名为属性的表添加了一个新列默认值。

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

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

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

使用导轨 2.3.10

谢谢!

4

2 回答 2

2

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

于 2011-01-03T19:05:14.513 回答
0

我建议更改迁移中的数据。这确保了进一步的迁移将始终按预期工作。

但是,始终确保您创建自己的模型以在迁移中使用,否则新模型和旧模式之间的冲突会让您受益。

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

class Property < ActiveRecord::Base; end
于 2011-01-03T19:10:35.963 回答