Prior approach (ADMIN_DATABASE_URL first) broke PR preview environments: fresh
Railway PostgreSQL instances have no resolutionflow_admin role yet, so the admin
URL fails before the create_db_roles migration can run (bootstrap deadlock).
New priority order in _alembic_sync_url():
1. PGHOST/PGUSER/PGPASSWORD/PGDATABASE — Railway auto-links these from the
PostgreSQL service per-environment, giving correct superuser creds for every
env including fresh PR preview DBs where no custom roles exist yet.
2. ADMIN_DATABASE_URL (resolutionflow_admin, BYPASSRLS, asyncpg→sync) — local
dev and stable envs where the role already exists.
3. DATABASE_URL_SYNC — legacy fallback.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>