fix: skip operation UUID conflicts on import

This commit is contained in:
2026-08-19 17:50:07 +03:00
parent b99555ca23
commit 3af9e9dbfe
3 changed files with 8 additions and 2 deletions

View File

@@ -1,5 +1,11 @@
# Changelog # Changelog
## [Backend 0.6.6] - 2026-08-19
### Fixed
- Re-importing an existing operation UUID now safely skips the row even if other source fields changed.
## [Backend 0.6.5] - 2026-08-19 ## [Backend 0.6.5] - 2026-08-19
### Fixed ### Fixed

View File

@@ -1,6 +1,6 @@
{ {
"name": "@family-budget/backend", "name": "@family-budget/backend",
"version": "0.6.5", "version": "0.6.6",
"private": true, "private": true,
"scripts": { "scripts": {
"dev": "tsx watch src/app.ts", "dev": "tsx watch src/app.ts",

View File

@@ -226,7 +226,7 @@ export async function importStatement(
`INSERT INTO transactions `INSERT INTO transactions
(account_id, operation_id, operation_at, amount_signed, commission, description, direction, fingerprint, category_id, is_category_confirmed, import_id) (account_id, operation_id, operation_at, amount_signed, commission, description, direction, fingerprint, category_id, is_category_confirmed, import_id)
VALUES ($1, COALESCE($2::uuid, gen_random_uuid()), $3, $4, $5, $6, $7, $8, $9, $10, $11) VALUES ($1, COALESCE($2::uuid, gen_random_uuid()), $3, $4, $5, $6, $7, $8, $9, $10, $11)
ON CONFLICT (account_id, fingerprint) DO NOTHING ON CONFLICT DO NOTHING
RETURNING id`, RETURNING id`,
[accountId, tx.operationId ?? null, tx.operationAt, tx.amountSigned, tx.commission, tx.description, dir, fp, categoryId, isCategoryConfirmed, importId], [accountId, tx.operationId ?? null, tx.operationAt, tx.amountSigned, tx.commission, tx.description, dir, fp, categoryId, isCategoryConfirmed, importId],
); );