Я использую Rails 3.2 и имею миграцию, которая содержит код:
add_column :users, :gift_aid, :integer, :default => 2
# reset columns
User.reset_column_information
... code here to load legacy data from sqlite3 database ...
# now create a user with the loaded column data
user = User.create( ...other cols...,
:gift_aid => migrated_gift_aid_column_data,
...other cols... )
, и я получаю unknown attribute: gift_aid
при запуске миграции.User.column_names
показывает один и тот же список до и после вызова reset_column_information
.
Как ни странно, когда я вручную отбрасываю столбец в mysql и перезапускаю миграцию, он работает, как и ожидалось.Начиная с первой миграции снова с пустой базой данных, и она не работает, так что это связано с выполнением всех миграций, а не с одной.
У меня есть пара предыдущих миграций на модели User, обевключите reset_column_information
и оба работают нормально.
Я действительно почесываю голову - у кого-нибудь есть идеи