56 lines
1.8 KiB
SQL
Vendored
56 lines
1.8 KiB
SQL
Vendored
-- Add unique ap_id for private_message, comment, and post
|
|
|
|
-- Need to delete the possible dupes for ones that don't start with the fake one
|
|
delete from private_message a using (
|
|
select min(id) as id, ap_id
|
|
from private_message
|
|
group by ap_id having count(*) > 1
|
|
) b
|
|
where a.ap_id = b.ap_id
|
|
and a.id <> b.id;
|
|
|
|
delete from post a using (
|
|
select min(id) as id, ap_id
|
|
from post
|
|
group by ap_id having count(*) > 1
|
|
) b
|
|
where a.ap_id = b.ap_id
|
|
and a.id <> b.id;
|
|
|
|
delete from comment a using (
|
|
select min(id) as id, ap_id
|
|
from comment
|
|
group by ap_id having count(*) > 1
|
|
) b
|
|
where a.ap_id = b.ap_id
|
|
and a.id <> b.id;
|
|
|
|
-- Replacing the current default on the columns, to the unique one
|
|
update private_message
|
|
set ap_id = generate_unique_changeme()
|
|
where ap_id = 'http://fake.com';
|
|
|
|
update post
|
|
set ap_id = generate_unique_changeme()
|
|
where ap_id = 'http://fake.com';
|
|
|
|
update comment
|
|
set ap_id = generate_unique_changeme()
|
|
where ap_id = 'http://fake.com';
|
|
|
|
-- Add the unique indexes
|
|
alter table private_message alter column ap_id set not null;
|
|
alter table private_message alter column ap_id set default generate_unique_changeme();
|
|
|
|
alter table post alter column ap_id set not null;
|
|
alter table post alter column ap_id set default generate_unique_changeme();
|
|
|
|
alter table comment alter column ap_id set not null;
|
|
alter table comment alter column ap_id set default generate_unique_changeme();
|
|
|
|
-- Add the uniques, for user_ and community too
|
|
alter table private_message add constraint idx_private_message_ap_id unique (ap_id);
|
|
alter table post add constraint idx_post_ap_id unique (ap_id);
|
|
alter table comment add constraint idx_comment_ap_id unique (ap_id);
|
|
alter table user_ add constraint idx_user_actor_id unique (actor_id);
|
|
alter table community add constraint idx_community_actor_id unique (actor_id);
|