Add a script for breaking up records table into partitions
parent
8b86f8f929
commit
6b400b1f43
10
Makefile
10
Makefile
|
@ -1,9 +1,9 @@
|
|||
.PHONY: all build up update down start-db status logs
|
||||
.PHONY: all build up update down start-db status logs psql init-db
|
||||
|
||||
all:
|
||||
go test -v ./...
|
||||
|
||||
.env: example.env
|
||||
.env:
|
||||
@cp example.env .env
|
||||
@echo "Please edit .env to suit your environment before proceeding"
|
||||
@exit 1
|
||||
|
@ -30,3 +30,9 @@ logs:
|
|||
|
||||
psql:
|
||||
@docker compose exec -it postgres psql -U postgres -d bluesky
|
||||
|
||||
init-db: init.sql
|
||||
@docker compose up -d --build lister
|
||||
@sleep 10
|
||||
@docker compose stop lister
|
||||
@cat init.sql | docker exec -i "$$(docker compose ps --format '{{.Names}}' postgres)" psql -U postgres -d bluesky
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
insert into pds (host) values ('https://agaric.us-west.host.bsky.network'),
|
||||
('https://amanita.us-east.host.bsky.network'),
|
||||
('https://blewit.us-west.host.bsky.network'),
|
||||
('https://boletus.us-west.host.bsky.network'),
|
||||
('https://bsky.social'),
|
||||
('https://chaga.us-west.host.bsky.network'),
|
||||
('https://conocybe.us-west.host.bsky.network'),
|
||||
('https://enoki.us-east.host.bsky.network'),
|
||||
('https://hydnum.us-west.host.bsky.network'),
|
||||
('https://inkcap.us-east.host.bsky.network'),
|
||||
('https://lepista.us-west.host.bsky.network'),
|
||||
('https://lionsmane.us-east.host.bsky.network'),
|
||||
('https://maitake.us-west.host.bsky.network'),
|
||||
('https://morel.us-east.host.bsky.network'),
|
||||
('https://oyster.us-east.host.bsky.network'),
|
||||
('https://porcini.us-east.host.bsky.network'),
|
||||
('https://puffball.us-east.host.bsky.network'),
|
||||
('https://russula.us-west.host.bsky.network'),
|
||||
('https://shiitake.us-east.host.bsky.network'),
|
||||
('https://shimeji.us-east.host.bsky.network'),
|
||||
('https://verpa.us-west.host.bsky.network')
|
||||
on conflict do nothing;
|
|
@ -0,0 +1,33 @@
|
|||
alter table records rename to records_like;
|
||||
|
||||
create table records
|
||||
(like records_like including defaults)
|
||||
partition by list (collection);
|
||||
|
||||
drop index idx_repo_record_key;
|
||||
drop index idx_repo_rev;
|
||||
alter table records_like drop constraint records_pkey;
|
||||
create unique index records_pkey on records (id, collection);
|
||||
|
||||
create table records_default
|
||||
partition of records default;
|
||||
|
||||
create table records_post
|
||||
partition of records for values in ('app.bsky.feed.post');
|
||||
create table records_follow
|
||||
partition of records for values in ('app.bsky.graph.follow');
|
||||
create table records_block
|
||||
partition of records for values in ('app.bsky.graph.block');
|
||||
create table records_repost
|
||||
partition of records for values in ('app.bsky.feed.repost');
|
||||
create table records_profile
|
||||
partition of records for values in ('app.bsky.actor.profile');
|
||||
|
||||
with moved_rows as (
|
||||
delete from records_like r
|
||||
where collection <> 'app.bsky.feed.like'
|
||||
returning r.*
|
||||
)
|
||||
insert into records select * from moved_rows;
|
||||
|
||||
alter table records attach partition records_like for values in ('app.bsky.feed.like');
|
Loading…
Reference in New Issue