У меня есть странная проблема. Это мой код переноса:Rails миграции не работает
class SetDefaultToFalse < ActiveRecord::Migration
def change
MyObject.where('done is ?', nil).each do |a|
a.done = false
a.save
end
end
end
Если я бегу это на дамп базы данных от давно, со всеми другими, более старых миграций, после того, как это сделано, любой из my_objects
не имеют done
поле помечено как false
. Если все еще есть rake db:rollback
и db:migrate
, неожиданно, он работает. Зачем? В столбце done
добавлено более 5 миграций до этого. Изменение предыдущих миграций не является решением, которое я ищу.
Вы должны посмотреть на это: HTTP: // StackOverflow .com/вопросы/12612969/закатного разные-по-умолчанию, значения-в-рельсы-миграций – TarunJadhwani
@TarunJadhwani, Вы можете оставить свой комментарий в качестве ответа. Решением были те две строки: MyObject.connection.schema_cache.clear! MyObject.reset_column_information –