ForeignKeyViolation на dev_id='4777_0' / '5377_0' / etc — developer'ов нет в domrf_developers (FK fk_kn_obj_developer). Plus, старый except: db.rollback() откатывал ВСЮ транзакцию вместо текущего row → один FK-сбой убивал весь Phase A. - _ensure_developers(db, raw) — pre-upsert unique (dev_id, dev_name) перед upsert_objects, ON CONFLICT (developer_id) DO NOTHING. Fallback name 'Developer #<companyGroup>' если все имена None. - SAVEPOINT (db.begin_nested) во всех 5 upsert helper'ах + _log_failure заменяет db.rollback() — теперь сбой одного row не сносит транзакцию. - Smoke verified против прод-БД: 4777_0/5377_0 закреплены, 6208_0 уже существовал — ON CONFLICT отработал. |
||
|---|---|---|
| .. | ||
| alembic | ||
| app | ||
| db/init | ||
| tests | ||
| .dockerignore | ||
| .env.example | ||
| alembic.ini | ||
| Dockerfile | ||
| pyproject.toml | ||
| uv.lock | ||