lemmy/migrations/2023-07-11-084714_receive_activity_table/up.sql

36 lines
1.1 KiB
MySQL
Raw Normal View History

-- outgoing activities, need to be stored to be later server over http
-- we change data column from jsonb to json for decreased size
-- https://stackoverflow.com/a/22910602
create table sent_activity (
id bigserial primary key,
ap_id text unique not null,
data json not null,
sensitive boolean not null,
published timestamp not null default now()
);
-- incoming activities, we only need the id to avoid processing the same activity multiple times
create table received_activity (
id bigserial primary key,
ap_id text unique not null,
published timestamp not null default now()
);
-- copy sent activities to new table. only copy last 100k for faster migration
insert into sent_activity(ap_id, data, sensitive, published)
select ap_id, data, sensitive, published
from activity
where local = true
order by id desc
limit 100000;
-- copy received activities to new table. only last 1m for faster migration
insert into received_activity(ap_id, published)
select ap_id, published
from activity
where local = false
order by id desc
limit 1000000;
drop table activity;