Model.Resetowanie informacji o kolumnach nie powoduje przeładowania kolumn w migracji rails
Używam Rails 3.2 i mam migrację, która zawiera kod:
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... )
I dostaję unknown attribute: gift_aid
podczas uruchamiania migracji. User.column_names
pokazuje tę samą listę przed i po wywołaniu do reset_column_information
.
Co dziwne, gdy ręcznie upuszczam kolumnę w mysql i ponownie uruchamiam migrację, działa to zgodnie z oczekiwaniami. Zaczynając od pierwszej migracji ponownie z pustą bazą danych i nie działa, więc jest to coś wspólnego z uruchomieniem wszystkich migracji, a nie jednej.
Mam kilka z poprzednich migracji na model użytkownika, oba zawierają reset_column_information
i oba działają dobrze.
Naprawdę drapię się po głowie tym jednym-ktoś ma jakieś pomysły
1 answers
Myślę, że to musi być jakiś błąd związany z buforowaniem schematu... to może zadziałać:
User.connection.schema_cache.clear!
User.reset_column_information
(dla Rails 3.2.2)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-15 20:55:42