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:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user