将迁移选项添加到rails中以前创建的表

时间:2015-03-14 12:43:23

标签: ruby-on-rails

我使用此命令在rails中创建了一个迁移:

rails generate model Group name:string

我跑了rake db:migrate。现在我想在' name'中添加一些属性。像唯一性和默认值。我有什么选择来实现这一目标?我必须为此创建新的迁移吗?

还要说我会生成一个名为“部门”的新模型。它还有一个唯一的默认值,有没有办法直接将这些选项添加到命令?

1 个答案:

答案 0 :(得分:2)

好问题。这有点取决于一些事情,比如你是否在这个项目上与其他人合作,或者只是你。

如果它只是你,而你不介意失去你创建的所有Groups,那么你可以rake db:rollback并修改你的迁移文件。请注意,rake db:rollback只会回滚1次迁移。要回滚x次迁移,rake db:rollback STEP=x将适合您。

如果您正在与他人合作(或者此应用正在制作中),我建议您只创建另一个迁移文件。

rails g migration update_groups_name

def up
  change_column :groups, :name, :string, default: 'foo'
  add_index :groups, :name, unique: true
end

def down
  change_column_default :groups, :name, nil
  remove_index :groups, :name
end