ruby on rails - Model.reset_column_information no recarga las columnas en la migración de raíles
ruby-on-rails activerecord (1)
Creo que esto debe ser algún tipo de error relacionado con el almacenamiento en caché de esquemas ... esto podría funcionar:
User.connection.schema_cache.clear!
User.reset_column_information
(para Rails 3.2.2)
Estoy usando Rails 3.2 y tengo una migración que contiene el código:
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... )
y obtengo unknown attribute: gift_aid
al ejecutar la migración. User.column_names
muestra la misma lista antes y después de la llamada a reset_column_information
.
Curiosamente, cuando dejo caer la columna manualmente en mysql y vuelvo a ejecutar la migración, funciona como se esperaba. Comenzar desde la primera migración nuevamente con una base de datos vacía y no funciona, por lo que tiene que ver con ejecutar todas las migraciones en lugar de la única.
Tengo un par de migraciones anteriores en el modelo de usuario, ambas incluyen reset_column_information
y ambas funcionan bien.
Realmente me estoy rascando la cabeza en esto, cualquiera tiene ideas