From 59ea0eb9c29ed9aabf10f7f01a79c83ca1f1ed5a Mon Sep 17 00:00:00 2001 From: eshmeshek Date: Sat, 23 May 2026 23:35:04 +0300 Subject: [PATCH] Fix sync-all: use subquery for PostgreSQL-compatible UPDATE LIMIT Co-Authored-By: Claude Opus 4.7 (1M context) --- backend/src/services/GiteaService.ts | 31 ++++++++++++++++------------ 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/backend/src/services/GiteaService.ts b/backend/src/services/GiteaService.ts index 0087009..6314c79 100644 --- a/backend/src/services/GiteaService.ts +++ b/backend/src/services/GiteaService.ts @@ -391,19 +391,24 @@ class GiteaService { try { const sha = await this.commitEndpointFiles(ep, cfg.prod_branch || 'main', `Sync: ${ep.name}`); // Mark published version as synced - if (sha && ep.published_version_id) { - await mainPool.query( - 'UPDATE endpoint_versions SET gitea_commit_sha = $1 WHERE id = $2', - [sha, ep.published_version_id] - ); - } else if (sha) { - // No published version yet — mark the latest version - await mainPool.query( - `UPDATE endpoint_versions SET gitea_commit_sha = $1 - WHERE endpoint_id = $2 AND gitea_commit_sha IS NULL - ORDER BY version_number DESC LIMIT 1`, - [sha, ep.id] - ); + if (sha) { + const versionId = ep.published_version_id; + if (versionId) { + await mainPool.query( + 'UPDATE endpoint_versions SET gitea_commit_sha = $1 WHERE id = $2', + [sha, versionId] + ); + } else { + await mainPool.query( + `UPDATE endpoint_versions SET gitea_commit_sha = $1 + WHERE id = ( + SELECT id FROM endpoint_versions + WHERE endpoint_id = $2 + ORDER BY version_number DESC LIMIT 1 + )`, + [sha, ep.id] + ); + } } synced++; } catch (err: any) {