Mercurial > gemma
changeset 1978:0a8fa6893181
Import: Upsert gauge measurement data to avoid unique contraint violation.
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Wed, 23 Jan 2019 12:09:23 +0100 |
parents | 53c1383dfee3 |
children | 0bc0312105e4 |
files | pkg/imports/gm.go |
diffstat | 1 files changed, 19 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/pkg/imports/gm.go Wed Jan 23 11:59:18 2019 +0100 +++ b/pkg/imports/gm.go Wed Jan 23 12:09:23 2019 +0100 @@ -50,6 +50,9 @@ FROM waterway.gauges WHERE (location).country_code = users.current_user_country()` + // TODO: Currently this statement updates existing data sets. In case we want + // 'historization' we need to develop an other mechanism to keep existing + // data. insertGMSQL = ` INSERT INTO waterway.gauge_measurements ( fk_gauge_id, @@ -84,7 +87,22 @@ $18, $19 ) -RETURNING id` +ON CONFLICT ON CONSTRAINT gauge_measurements_fk_gauge_id_measure_date_staging_done_key +DO UPDATE SET +country_code = EXCLUDED.country_code, +sender = EXCLUDED.sender, +language_code = EXCLUDED.language_code, +date_issue = EXCLUDED.date_issue, +reference_code= EXCLUDED.reference_code, +water_level = EXCLUDED.water_level, +predicted = EXCLUDED.predicted, +is_waterlevel = EXCLUDED.is_waterlevel, +value_min = EXCLUDED.value_min, +value_max = EXCLUDED.value_max, +date_info = EXCLUDED.date_info, +source_organization = EXCLUDED.source_organization +RETURNING id +` ) type gmJobCreator struct{}