-- 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