Removing columns from tables while running application with ActiveRecord
causes errors, because ActiveRecord caches column names.
Workaround for ActiveRecord up to 3.0.9 was to override #columns method
in
the model and filter out deprecated column names before migration
(basically - hide these columns from AR). This worked because all column
name related methods were based on #columns call
In ActiveRecord starting with 3.1.0 caching of table structures is moved
to
ConnectionPool, and all column name related values (e.g. coluumns_hash)
are
cached independently.
Is there any way (other than deep-hack of concrete adapters) to achieve
safe column drop in ActiveRecord > 3.0 ?