Старая версия моей рубиновой миграции на рельсах содержит как фактическую миграцию, так и действие для изменения данных:
class AddTypeFlagToGroup < ActiveRecord::Migration
def self.up
add_column :groups, :selection_type, :string
Group.reset_column_information
Group.transaction do
Group.all.each do |group|
group.selection_type = group.calculate_selection_type
group.save
end
end
end
def self.down
remove_column :groups, :selection_type
end
end
В этой миграции есть обычные операторы миграции add_column
и remove_column
. Но есть также некоторые специфичные для модели вызовы методов.
Я написал это пару недель назад. С тех пор я удалил свою модель Group
, которая выдает ошибку при полной миграции с :reset
.
rake db:migrate:reset
(in /Users/jesper/src/pet_project)
[...]
== AddTypeFlagToGroup: migrating =============================================
-- add_column(:groups, :selection_type, :string)
-> 0.0012s
rake aborted!
An error has occurred, this and all later migrations canceled:
uninitialized constant AddTypeFlagToGroup::Group
Дело в том, что в текущей редакции моего кода Group не существует. Как мне справиться с этим "рельсовым путем" ??
Я думаю, что мог бы изменить миграцию, комментируя материал Group.xxx
, но разве это разумный путь?