Model.reset_column_information не перезагружает столбцы при миграции рельсов

Я использую 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... )

, и я получаю неизвестный атрибут: gift_aid при запуске миграция. User.column_names показывает один и тот же список до и после вызова reset_column_information .

Как ни странно, когда я вручную отбрасываю столбец в mysql и повторно запускаю миграцию, он работает должным образом. Начиная с первой миграции снова с пустой базой данных, это не работает, поэтому это как-то связано с запуском всех миграций, а не одной.

У меня есть несколько предыдущих миграций модели User, обе включают reset_column_information , и обе работают нормально.

Я действительно ломаю голову над этим - у кого-нибудь есть идеи

47
задан Iain 2 February 2012 в 15:51
поделиться