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