- Move the shared-schema bootstrap out of the Alembic chain into a standalone script (scripts/bootstrap_shared_schema.py). As a chained revision it collided with the per-tenant history on `alembic upgrade head` (DuplicateTable) and would have run on existing single-tenant instances via init_db(). It is now run explicitly against the fresh shared DB; the migration track owns provisioning. - Run the bootstrap in AUTOCOMMIT so 1000+ partition creations plus composite FKs don't exhaust max_locks_per_transaction in a single transaction. - Derive the partitioned-table set from the models instead of hand-listing it (a hand list drifts and yields a partitioned parent with zero partitions). - message_embeddings: index (message_id, tenant_id) since message_id lookups are cross-tenant; restore the composite workspaces FK for parity with peer tables. - messages: ix_messages_peer_lookup = (tenant_id, workspace_name, peer_name, created_at) to serve the peer-history query without a sort. - QueueItem.__repr__: include tenant_id. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| bootstrap_shared_schema.py | ||
| configure_embeddings.py | ||
| dialectic_cost_calculator.py | ||
| ensure_alembic_tests.py | ||
| generate_jwt.py | ||
| generate_jwt_secret.py | ||
| generate_message_embeddings.py | ||
| jsonl_to_json.py | ||
| migrate_db.py | ||
| provision_db.py | ||
| run_alembic_tests.py | ||
| test_reasoning_levels.py | ||
| update_version.py | ||