# Migration History Audit **Erstellt:** 2026-08-03 **Alembic-Head:** 0092 **Produktions-Stand:** 0092 --- ## Bestätigte Schema-Diskrepanzen ### 1. files.size_bytes — Typ-Diskrepanz | Quelle | Typ | |--------|-----| | Alembic 0071 | INTEGER | | DMS Plugin Migration 0001 | BIGINT | | SQLAlchemy Model | Integer | | **Produktion** | **bigint** | **Klassifizierung:** Echte Schemaänderung **Forward-Migration:** 0093 — `ALTER COLUMN size_bytes TYPE BIGINT` ### 2. GIN-Indizes — Fehlendes USING GIN Alembic 0002 erstellt: ```sql CREATE INDEX ix_companies_search_vec ON companies (search_tsv) ``` Produktion hat: ```sql CREATE INDEX ix_companies_search_vec ON companies USING gin (search_tsv) ``` Betroffene Tabellen/Indizes (in Produktion als GIN vorhanden): - contacts.ix_contacts_search_tsv - audit_log.ix_audit_log_search_tsv - calendar_entries.ix_cal_entries_search_tsv - comm_messages.ix_comm_messages_search_tsv - files.ix_files_content_tsv - mails.ix_mails_body_tsv - tags.ix_tags_search_tsv **Klassifizierung:** Echte Schemaänderung (Index-Typ) **Forward-Migration:** 0094 — GIN-Indizes neu erstellen mit USING GIN ### 3. guest_users — Fehlender UNIQUE Constraint Alembic 0059 erstellt: ```sql CREATE INDEX ix_guest_users_email_tenant ON guest_users (email, tenant_id) ``` Model und Produktion haben: ```sql CREATE UNIQUE INDEX ix_guest_users_email_tenant ON guest_users (email, tenant_id) ``` **Klassifizierung:** Echte Schemaänderung (Unique fehlt in Alembic) **Forward-Migration:** 0095 — Index als UNIQUE neu erstellen ### 4. plugins.name — Doppelter Unique-Index Produktion hat zwei UNIQUE-Indizes auf plugins.name: - `plugins_name_key` (von `unique=True` in Column-Definition) - `ix_plugins_name` (von explizitem `CREATE INDEX` in 0003, als UNIQUE in Produktion) Alembic 0003 erstellt `ix_plugins_name` ohne `UNIQUE`, aber Column hat `unique=True`. **Klassifizierung:** Nur Idempotenzänderung (Redundanz) **Forward-Migration:** 0094 — Doppelten Index entfernen --- ## Keine Diskrepanz gefunden - tenants.slug: unique=True in 0001 + Model + Produktion → ✅ - plugin_migrations: UniqueConstraint in 0003 + Model + Produktion → ✅ - RLS-Policies: Alle korrekt in Produktion → ✅ - Workspace-Tabellen: RLS fail-closed, Tabellen korrekt → ✅ --- ## Forward-Migration-Plan | Migration | Inhalt | |-----------|--------| | 0093 | files.size_bytes INTEGER → BIGINT | | 0094 | GIN-Indizes reparieren + plugins.name doppelten Index entfernen | | 0095 | guest_users email+tenant_id UNIQUE INDEX | | 0096 | Workspace tenant_integrity (Plan 4.3) |