Почему эта миграция необратима? (изменить_таблицу, переименовать, текст) - PullRequest
23 голосов
/ 24 января 2012

Я думаю, что это довольно простая миграция. По какой-то причине я получаю ошибку 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. Спасибо за любую помощь.

1 Ответ

21 голосов
/ 24 января 2012

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

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

Список команд, которые можно инвертировать, можно увидеть в документах или в направляющих Rails .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...