2.0 KiB
2.0 KiB
sales_service Migrations Inventory
Migration Files
Sales-specific migrations:
| File | Purpose |
|---|---|
migrations/sql/0023_sales_sqlite.sql |
Creates main sales tables for SQLite. |
migrations/sql/0023_sales_postgres.sql |
Creates main sales tables for Postgres. |
migrations/sql/0024_sales_external_links_sqlite.sql |
Adds sales_external_links for SQLite. |
migrations/sql/0024_sales_external_links_postgres.sql |
Adds sales_external_links for Postgres. |
Migration Runner
Runner: scripts/migrate_core_db.py.
Behavior:
- Detects dialect from
DATABASE_URL. - Selects all
*_{dialect}.sqlfiles inmigrations/sql. - Applies them in sorted filename order.
- Tracks applied files in
schema_migrations.
Runtime schema mode:
- SQLite defaults to
SCHEMA_MANAGEMENT_MODE=legacy, which callsBase.metadata.create_all. - Non-SQLite requires
SCHEMA_MANAGEMENT_MODE=migrations. SCHEMA_MANAGEMENT_MODE=migrationsvalidates that all checked-in migration files were applied.
Smoke Check
Command used:
DATABASE_URL="sqlite:///.../migration_check.db" \
SCHEMA_MANAGEMENT_MODE=migrations \
.venv/bin/python scripts/migrate_core_db.py
Result:
- Exit status: 0.
- Applied migrations include
0023_sales_sqlite.sqland0024_sales_external_links_sqlite.sql. missing_migration_versions()returned[].services.sales_service.appimports successfully after migrations.
Full output: sales_service_migration_check.txt.
Observations
migrations/README.mdis stale: it still lists only0001and0002, while the repo now has migrations through0024.- Sales migrations create no physical foreign keys between sales tables.
- Several external ids are indexed but not unique: messages, calls, payments.
- There is no migration for
Tenant, configurablePipeline, or configurableStage. - ORM metadata has more
index=Truedeclarations than the explicit SQL migrations create. Usesales_service_er_db_sqlite.mdfor the migrated DB baseline andsales_service_er_map.mdfor ORM intent.