fix(tradein/data): dry-run бэкфилла — savepoint-паритет с write-веткой (#2236)
All checks were successful
CI Trade-In / changes (pull_request) Successful in 17s
CI / changes (pull_request) Successful in 18s
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Successful in 2m58s
All checks were successful
CI Trade-In / changes (pull_request) Successful in 17s
CI / changes (pull_request) Successful in 18s
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Successful in 2m58s
This commit is contained in:
parent
291717fa2f
commit
c2096249d5
1 changed files with 14 additions and 14 deletions
|
|
@ -165,21 +165,21 @@ def _process_row(
|
|||
stats.bump(row.source, "processed")
|
||||
|
||||
try:
|
||||
if dry_run:
|
||||
# SAVEPOINT в обеих ветках: даже в dry-run matcher бьёт по БД (SELECT'ы),
|
||||
# и его exception на реальной сессии перевёл бы транзакцию в aborted →
|
||||
# каскад «current transaction is aborted» на всех последующих строках.
|
||||
with db.begin_nested():
|
||||
house_id = matcher(db, row.address)
|
||||
else:
|
||||
with db.begin_nested():
|
||||
house_id = matcher(db, row.address)
|
||||
if house_id is not None:
|
||||
db.execute(
|
||||
text(
|
||||
"UPDATE external_valuations "
|
||||
" SET house_id = CAST(:hid AS bigint) "
|
||||
" WHERE id = CAST(:eid AS bigint) "
|
||||
" AND house_id IS NULL"
|
||||
),
|
||||
{"hid": house_id, "eid": row.id},
|
||||
)
|
||||
if house_id is not None and not dry_run:
|
||||
db.execute(
|
||||
text(
|
||||
"UPDATE external_valuations "
|
||||
" SET house_id = CAST(:hid AS bigint) "
|
||||
" WHERE id = CAST(:eid AS bigint) "
|
||||
" AND house_id IS NULL"
|
||||
),
|
||||
{"hid": house_id, "eid": row.id},
|
||||
)
|
||||
|
||||
if house_id is not None:
|
||||
stats.resolved += 1
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue