25 lines
1.5 KiB
SQL
25 lines
1.5 KiB
SQL
-- Per-user tenancy: authenticate key/client id becomes an opaque tenant boundary.
|
|
-- Existing rows remain in the legacy unscoped tenant (NULL) for single-tenant installs.
|
|
|
|
alter table projects add column if not exists tenant_key text;
|
|
alter table thoughts add column if not exists tenant_key text;
|
|
alter table stored_files add column if not exists tenant_key text;
|
|
alter table learnings add column if not exists tenant_key text;
|
|
alter table plans add column if not exists tenant_key text;
|
|
alter table chat_histories add column if not exists tenant_key text;
|
|
|
|
-- Project names are now unique inside a tenant rather than globally.
|
|
alter table projects drop constraint if exists ukey_projects_name;
|
|
alter table projects drop constraint if exists projects_name_key;
|
|
drop index if exists projects_name_key;
|
|
create unique index if not exists projects_tenant_key_name_idx
|
|
on projects (coalesce(tenant_key, ''), name);
|
|
|
|
create index if not exists projects_tenant_key_idx on projects (tenant_key);
|
|
create index if not exists thoughts_tenant_key_idx on thoughts (tenant_key);
|
|
create index if not exists thoughts_tenant_key_project_id_idx on thoughts (tenant_key, project_id);
|
|
create index if not exists stored_files_tenant_key_idx on stored_files (tenant_key);
|
|
create index if not exists learnings_tenant_key_idx on learnings (tenant_key);
|
|
create index if not exists plans_tenant_key_idx on plans (tenant_key);
|
|
create index if not exists chat_histories_tenant_key_idx on chat_histories (tenant_key);
|