fix: sql conflict when image tag reused

This commit is contained in:
2024-12-02 23:59:04 +00:00
parent 6b955ded73
commit 072d2eeae0

View File

@@ -288,6 +288,7 @@ func (mgr *templateManager) buildTemplate(ctx context.Context, template *templat
outputChan <- stream outputChan <- stream
} else if errmsg, ok := msg["error"].(string); ok { } else if errmsg, ok := msg["error"].(string); ok {
outputChan <- errmsg + "\n" outputChan <- errmsg + "\n"
return
} else if status, ok := msg["status"].(string); ok { } else if status, ok := msg["status"].(string); ok {
var text string var text string
if progress, ok := msg["progress"].(string); ok { if progress, ok := msg["progress"].(string); ok {
@@ -312,10 +313,14 @@ func (mgr *templateManager) buildTemplate(ctx context.Context, template *templat
ImageID: imageID, ImageID: imageID,
} }
_, err = tx.NewInsert().Model(img).Exec(ctx) _, err = tx.NewInsert().Model(img).
On("CONFLICT DO UPDATE").
Set("image_id = EXCLUDED.image_id").
Exec(ctx)
if err != nil { if err != nil {
_ = tx.Rollback() _ = tx.Rollback()
outputChan <- err outputChan <- err
return
} }
} }
@@ -323,6 +328,7 @@ func (mgr *templateManager) buildTemplate(ctx context.Context, template *templat
if err = tx.Commit(); err != nil { if err = tx.Commit(); err != nil {
_ = tx.Rollback() _ = tx.Rollback()
outputChan <- err outputChan <- err
return
} }
} }