Files
Oxicloud/migrations/20260906000002_drop_legacy_share_tables.sql
T
2026-07-08 01:03:25 +02:00

39 lines
1.6 KiB
SQL

-- Drop the pre-Round-3 per-domain share tables. Every reader/writer
-- was retired in the Rust cleanup landing alongside this migration:
--
-- * `CalendarUseCase::{list_shared_calendars, share_calendar,
-- remove_calendar_sharing, get_calendar_shares}` — gone
-- * `AddressBookUseCase::{share_address_book, unshare_address_book,
-- get_address_book_shares}` — gone
-- * `CalendarRepository` / `AddressBookRepository` share methods — gone
-- * SQL bodies in `calendar_pg_repository.rs` /
-- `address_book_pg_repository.rs` that touched these tables — gone
--
-- Data lives on in `storage.role_grants` (backfilled by
-- `20260906000001_backfill_calendar_address_book_role_grants.sql`).
-- The one-release rollback window between the backfill and this drop
-- was left implicit — no external process reads either table today.
DROP TABLE IF EXISTS caldav.calendar_shares;
DROP TABLE IF EXISTS carddav.address_book_shares;
-- Post-flight introspection: refuse to complete if either table is
-- still present. Guards against a name-collision resurrection by an
-- older seed file or hand-rolled restore step.
DO $$
DECLARE
stray_count INT;
BEGIN
SELECT COUNT(*) INTO stray_count
FROM pg_class c
JOIN pg_namespace n ON n.oid = c.relnamespace
WHERE (n.nspname = 'caldav' AND c.relname = 'calendar_shares')
OR (n.nspname = 'carddav' AND c.relname = 'address_book_shares');
IF stray_count > 0 THEN
RAISE EXCEPTION
'Migration 20260906000002 finished with % legacy share table(s) still present',
stray_count;
END IF;
END $$;