4

我有需要更改的迁移(创建方式返回),如下所示:

20130923000732_create_questions.rb

我需要改变

 t.string to --> t.text

我怎样才能做到这一点?

我读到我可以创建一个新的迁移重命名列,但我不太明白。

4

3 回答 3

14

如果 20130923000732_create_questions.rb 迁移是您最后一次迁移,您可以使用以下命令回滚:

rake db:rollback

否则,您可以简单地使用 VERSION 降低您的特定迁移:

rake db:migrate:down VERSION=20130923000732

回滚迁移后,更改迁移文件并再次迁移。

于 2013-09-29T06:26:05.917 回答
4

您的应用程序正在开发中,只需在 edtor 中打开该迁移,将其更改为文本并再次运行所有迁移。或者编写一个将更新该字段类型的迁移。

首先在你的终端:

rails g migration change_column_type_in_questions

然后在您的迁移文件中:

class ChangeColumnTypeInQuestions < ActiveRecord::Migration
  def change
    change_column :questions, :body, :text
  end
end

迁移将查找表格问题,并在不丢失数据的情况下更新列体类型。

于 2013-09-29T06:28:14.940 回答
2

运行rails generate migration change_string_to_text_in_questions然后将创建一个新的迁移文件,其中

def change
  end

方法,现在插入,change_column :table_name, :column_name, :type现在您的迁移文件应该如下所示,

def change
    change_column :table_name, :column_name,:type
end

在此之后,保存更改并运行db:migrate

于 2013-09-29T06:26:18.247 回答