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 に答える