feat(schema): rename canonical_pair_id to federated_id, add group DM columns

Renames dm_channels.canonical_pair_id → federated_id and adds
owner_home_user_id, owner_home_instance, deleted_at columns to support
federated group DMs. Migration handles upgrade from existing installs
(full table rebuild to rename), partial states (ALTER TABLE), and fresh
installs (correct DDL from the start). Backfills federated_id for
existing 1-on-1 DM channels and owner federation identity for group DMs.
This commit is contained in:
Jannis Braun
2026-03-26 19:59:44 +01:00
parent 742d851aae
commit d9dc33bd36
3 changed files with 135 additions and 17 deletions
+5
View File
@@ -92,8 +92,13 @@ function createTables(db: Database.Database): void {
CREATE TABLE IF NOT EXISTS dm_channels (
id TEXT PRIMARY KEY,
owner_id TEXT,
federated_id TEXT,
owner_home_user_id TEXT,
owner_home_instance TEXT,
deleted_at INTEGER,
created_at INTEGER NOT NULL
);
CREATE UNIQUE INDEX IF NOT EXISTS idx_dm_federated ON dm_channels(federated_id) WHERE federated_id IS NOT NULL;
CREATE TABLE IF NOT EXISTS dm_members (
dm_channel_id TEXT NOT NULL REFERENCES dm_channels(id) ON DELETE CASCADE,