如何编辑迁移表

时间:2014-04-13 10:01:05

标签: ruby-on-rails database ruby-on-rails-4 rake migrate

我创建了我的模型,然后使用以下内容填充了我的迁移文件db/migration/234802843208_create_XXXXX_rb

class CreateXXXXX < ActiveRecord::Migration
  def change
    create_table :XXXXX do |t|

                t.string  :gender
        t.date    :date_of_birth
        t.string  :Marital_status
        t.string  :Spouses_name

我跑了rake db:migrate。

现在我要编辑表格。我想更改Marital_status以获取布尔数据类型而不是字符串。有没有正确的方法来做到这一点?我可以直接编辑表并重新运行rake db:migrate吗?你会建议我回滚,编辑,然后重新迁移还是有更好的方法?

3 个答案:

答案 0 :(得分:1)

你可以做到

rake db:rollback

rake db:migrate:down

然后打开迁移文件并更新更改

class CreateXXXXX < ActiveRecord::Migration
  def change
    create_table :XXXXX do |t|

        t.string  :gender
        t.date    :date_of_birth
        t.boolean  :Marital_status
        t.string  :Spouses_name

  end

并执行rake db:migraterake db:migrate:up

答案 1 :(得分:0)

在这些情况下,对我来说似乎很方便的是编辑文件然后运行

rake db:migrate:redo

如果无法做到这一点,我会建议您进行回滚,然后在更新迁移类后进行迁移。

答案 2 :(得分:0)

您应该创建另一个迁移,并编辑该字段。

rails g migration edit_xxxx_marital_status

创建迁移文件。并添加以下内容。

class EditXXXXMaritalStatus < ActiveRecord::Migration
 def up
    change_column XXXXX. :Marital_status, :boolean, default: false # if you waNT TO add any default value
 end

 def down
   change_column :XXXXX, :Marital_status, :string 
 end
end
相关问题