Problem with counter_cache implementation
You should be using User.reset_counters to do this. Additionally, I would recommend using find_each instead of each because it will iterate the collection in batches instead of all at once. self.up add_column :users, :posts_count, :integer, :default => 0 User.reset_column_information User.find_each do |u| User.reset_counters u.id, :posts end end