93 lines
2.7 KiB
SQL
93 lines
2.7 KiB
SQL
-- Drop the 2 views user_alias_1, user_alias_2
|
|
drop view user_alias_1, user_alias_2;
|
|
|
|
-- rename the user_ table to person
|
|
alter table user_ rename to person;
|
|
|
|
-- create a new table local_user
|
|
create table local_user (
|
|
id serial primary key,
|
|
user_id int references person on update cascade on delete cascade not null,
|
|
password_encrypted text not null,
|
|
email text,
|
|
admin boolean default false not null,
|
|
show_nsfw boolean default false not null,
|
|
theme character varying(20) default 'darkly'::character varying not null,
|
|
default_sort_type smallint default 0 not null,
|
|
default_listing_type smallint default 1 not null,
|
|
lang character varying(20) default 'browser'::character varying not null,
|
|
show_avatars boolean default true not null,
|
|
send_notifications_to_email boolean default false not null,
|
|
matrix_user_id text,
|
|
unique (user_id)
|
|
);
|
|
|
|
-- Copy the local users over to the new table
|
|
insert into local_user
|
|
(
|
|
user_id,
|
|
password_encrypted,
|
|
email,
|
|
admin,
|
|
show_nsfw,
|
|
theme,
|
|
default_sort_type,
|
|
default_listing_type,
|
|
lang,
|
|
show_avatars,
|
|
send_notifications_to_email,
|
|
matrix_user_id
|
|
)
|
|
select
|
|
id,
|
|
password_encrypted,
|
|
email,
|
|
admin,
|
|
show_nsfw,
|
|
theme,
|
|
default_sort_type,
|
|
default_listing_type,
|
|
lang,
|
|
show_avatars,
|
|
send_notifications_to_email,
|
|
matrix_user_id
|
|
from person
|
|
where local = true;
|
|
|
|
-- Drop those columns from person
|
|
alter table person
|
|
drop column password_encrypted,
|
|
drop column email,
|
|
drop column admin,
|
|
drop column show_nsfw,
|
|
drop column theme,
|
|
drop column default_sort_type,
|
|
drop column default_listing_type,
|
|
drop column lang,
|
|
drop column show_avatars,
|
|
drop column send_notifications_to_email,
|
|
drop column matrix_user_id;
|
|
|
|
-- Rename indexes
|
|
alter index user__pkey rename to person__pkey;
|
|
alter index idx_user_actor_id rename to idx_person_actor_id;
|
|
alter index idx_user_inbox_url rename to idx_person_inbox_url;
|
|
alter index idx_user_lower_actor_id rename to idx_person_lower_actor_id;
|
|
alter index idx_user_published rename to idx_person_published;
|
|
|
|
-- Rename triggers
|
|
alter trigger site_aggregates_user_delete on person rename to site_aggregates_person_delete;
|
|
alter trigger site_aggregates_user_insert on person rename to site_aggregates_person_insert;
|
|
alter trigger user_aggregates_user on person rename to person_aggregates_person;
|
|
|
|
-- Rename the trigger functions
|
|
alter function site_aggregates_user_delete() rename to site_aggregates_person_delete;
|
|
alter function site_aggregates_user_insert() rename to site_aggregates_person_insert;
|
|
alter function user_aggregates_user() rename to person_aggregates_person;
|
|
|
|
-- Create views
|
|
create view person_alias_1 as select * from person;
|
|
create view person_alias_2 as select * from person;
|
|
|
|
-- Rename every user_id column to person_id
|
|
|