`alembic/env.py` took its target from `get_settings().database_url`, composed from `.env`'s production `POSTGRES_*` values, so the most natural command in the repo — a bare `alembic current` — talked to production. `-x target=test` and `-x target=production` now name the database explicitly; anything else exits non-zero before any engine is built, and the one line it prints before migrating never shows a credential. `run_alembic` (tests/conftest.py) passes `-x target=test` and sets `TEST_DATABASE_URL` in the subprocess environment instead of overriding `POSTGRES_*` — the `_components()` shim is gone; nothing else used it. `make migrate-test`, `make migrate-production` and `make dev-test-server` are the three documented ways to reach either database now; `dev-test-server` refuses to start if the resolved database is not `core_api_test`. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Alembic Migrations for Core-API This directory contains database migrations managed by Alembic. Commands: # Generate a new migration (after changing models) alembic revision --autogenerate -m "description" # Apply all pending migrations alembic upgrade head # Rollback last migration alembic downgrade -1 # View migration history alembic history # View current revision alembic current See https://alembic.sqlalchemy.org for more documentation.