Fix sync-all: use subquery for PostgreSQL-compatible UPDATE LIMIT

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-23 23:35:04 +03:00
parent 36a1f26ca7
commit 59ea0eb9c2

View File

@@ -391,20 +391,25 @@ class GiteaService {
try { try {
const sha = await this.commitEndpointFiles(ep, cfg.prod_branch || 'main', `Sync: ${ep.name}`); const sha = await this.commitEndpointFiles(ep, cfg.prod_branch || 'main', `Sync: ${ep.name}`);
// Mark published version as synced // Mark published version as synced
if (sha && ep.published_version_id) { if (sha) {
const versionId = ep.published_version_id;
if (versionId) {
await mainPool.query( await mainPool.query(
'UPDATE endpoint_versions SET gitea_commit_sha = $1 WHERE id = $2', 'UPDATE endpoint_versions SET gitea_commit_sha = $1 WHERE id = $2',
[sha, ep.published_version_id] [sha, versionId]
); );
} else if (sha) { } else {
// No published version yet — mark the latest version
await mainPool.query( await mainPool.query(
`UPDATE endpoint_versions SET gitea_commit_sha = $1 `UPDATE endpoint_versions SET gitea_commit_sha = $1
WHERE endpoint_id = $2 AND gitea_commit_sha IS NULL WHERE id = (
ORDER BY version_number DESC LIMIT 1`, SELECT id FROM endpoint_versions
WHERE endpoint_id = $2
ORDER BY version_number DESC LIMIT 1
)`,
[sha, ep.id] [sha, ep.id]
); );
} }
}
synced++; synced++;
} catch (err: any) { } catch (err: any) {
errors.push(`${ep.name}: ${err.message}`); errors.push(`${ep.name}: ${err.message}`);