Подтвердить что ты не робот

Почему эта миграция необратима? (change_table, переименование, текст)

У меня есть то, что я считаю довольно простой миграцией. По какой-то причине я получаю ошибку IrreversibleMigration при попытке db:rollback или db:migrate:redo.

Миграция выполняется гладко, но я бы предпочел сохранить ее обратимой. Я не могу понять, почему это не так написано. Любые идеи?

Здесь миграция:

class AddWhyHypAndWhyHypeToStatements < ActiveRecord::Migration
  def change
    change_table :statements do |t|
      t.rename :description, :why_hypocritical
      t.text   :why_hypothetical
    end
  end
end

Если это имеет значение, столбец "description" является текстовым столбцом. Я использую Rails 3.1/Ruby 1.9.2/PostgreSQL. Спасибо за любую помощь.

4b9b3361

Ответ 1

Похоже, у Rails возникают проблемы с возвратом метода change_table. Попробуйте сделать это так:

class AddWhyHypAndWhyHypeToStatements < ActiveRecord::Migration
  def change
    rename_column :statements, :description, :why_hypocritical
    add_column :statements, :why_hypothetical, :text
  end
end

Вы можете просмотреть список команд, которые можно инвертировать в docs или в Rails Guides.