Mercurial > gemma
changeset 2922:372dc8382389
Fairway dimension import: continue if a feature fails to be inserted
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Wed, 03 Apr 2019 17:08:18 +0200 |
parents | 96ac7a980ec2 |
children | 9bd98daf0b0f |
files | pkg/imports/fd.go |
diffstat | 1 files changed, 18 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/pkg/imports/fd.go Wed Apr 03 16:42:03 2019 +0200 +++ b/pkg/imports/fd.go Wed Apr 03 17:08:18 2019 +0200 @@ -253,6 +253,8 @@ feedback.Info("Using EPSG: %d", epsg) + savepoint := Savepoint(ctx, tx, "feature") + features: for _, feature := range rfc.Features { if feature.Geometry.Coordinates == nil { @@ -281,24 +283,28 @@ } var fdid int64 var lat, lon float64 - err = insertStmt.QueryRowContext( - ctx, - p.asWKB(), - epsg, - fd.LOS, - fd.MinWidth, - fd.MaxWidth, - fd.Depth, - dateInfo, - fd.SourceOrganization, - ).Scan(&fdid, &lat, &lon) + err = savepoint(func() error { + err := insertStmt.QueryRowContext( + ctx, + p.asWKB(), + epsg, + fd.LOS, + fd.MinWidth, + fd.MaxWidth, + fd.Depth, + dateInfo, + fd.SourceOrganization, + ).Scan(&fdid, &lat, &lon) + return err + }) switch { case err == sql.ErrNoRows: outside++ // ignore -> filtered by responsibility_areas continue features case err != nil: - return err + feedback.Warn(handleError(err).Error()) + continue features } // Store for potential later removal. if err = track(ctx, tx, importID, "waterway.fairway_dimensions", fdid); err != nil {