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 ?
on 2012-09-23 16:47