diff options
Diffstat (limited to 'migrations/20260210193544_profile.sql')
| -rw-r--r-- | migrations/20260210193544_profile.sql | 30 |
1 files changed, 7 insertions, 23 deletions
diff --git a/migrations/20260210193544_profile.sql b/migrations/20260210193544_profile.sql index f47d034..930e657 100644 --- a/migrations/20260210193544_profile.sql +++ b/migrations/20260210193544_profile.sql @@ -1,26 +1,10 @@ -create type actor_kind as enum ( - 'application', - 'group', - 'organization', - 'person', - 'service' -); - create table profile ( - ap_id text primary key, - username varchar(15), - description varchar(255), - inbox text not null, - role actor_kind not null default 'person', - outbox text, - picture text, - public_key text not null, - private_key text, - created_at timestamptz not null default now(), - last_refreshed_at timestamptz not null default now() + data jsonb not null, + id text generated always as (data->>'id') stored, + primary key (id) ); -create index user_inbox_idx on profile (inbox); -create index user_outbox_idx on profile (outbox); -create index user_role_idx on profile (role); -create index user_username_idx on profile (username); +create index idx_profile_inbox on profile using gin ((data->'inbox')); +create index idx_profile_private_key_null + on profile ((data->>'private_key')) + where data->>'private_key' is null; |
