pools: drop post_count column (fix #3667)

This commit is contained in:
evazion
2018-11-08 15:08:56 -06:00
parent 115ed16a96
commit fb7d83c54f
3 changed files with 20 additions and 7 deletions

View File

@@ -84,7 +84,7 @@ class Pool < ApplicationRecord
when "created_at"
q = q.order("pools.created_at desc")
when "post_count"
q = q.order("pools.post_count desc").default_order
q = q.order(Arel.sql("cardinality(post_ids) desc")).default_order
else
q = q.apply_default_order(params)
end
@@ -207,7 +207,7 @@ class Pool < ApplicationRecord
return if is_deleted?
with_lock do
update(post_ids: post_ids + [post.id], post_count: post_count + 1)
update(post_ids: post_ids + [post.id])
post.add_pool!(self, true)
end
end
@@ -218,7 +218,7 @@ class Pool < ApplicationRecord
with_lock do
reload
update(post_ids: post_ids - [post.id], post_count: post_count - 1)
update(post_ids: post_ids - [post.id])
post.remove_pool!(self)
end
end
@@ -255,7 +255,6 @@ class Pool < ApplicationRecord
end
normalize_post_ids
self.post_count = post_ids.size
end
def synchronize!
@@ -263,6 +262,10 @@ class Pool < ApplicationRecord
save if will_save_change_to_post_ids?
end
def post_count
post_ids.size
end
def first_post?(post_id)
page_number(post_id) == 1
end
@@ -297,7 +300,7 @@ class Pool < ApplicationRecord
end
def method_attributes
super + [:creator_name]
super + [:creator_name, :post_count]
end
def update_category_pseudo_tags_for_posts_async

View File

@@ -0,0 +1,10 @@
class DropPostCountFromPools < ActiveRecord::Migration[5.2]
def up
remove_column :pools, :post_count
end
def down
add_column :pools, :post_count, :integer, default: 0, null: false
Pool.update_all("post_count = cardinality(post_ids)")
end
end

View File

@@ -2564,7 +2564,6 @@ CREATE TABLE public.pools (
description text,
is_active boolean DEFAULT true NOT NULL,
post_ids integer[] DEFAULT '{}'::integer[] NOT NULL,
post_count integer DEFAULT 0 NOT NULL,
is_deleted boolean DEFAULT false NOT NULL,
created_at timestamp without time zone,
updated_at timestamp without time zone,
@@ -7579,6 +7578,7 @@ INSERT INTO "schema_migrations" (version) VALUES
('20180912185624'),
('20180913184128'),
('20180916002448'),
('20181108162204');
('20181108162204'),
('20181108205842');