Hi,

keine Linux Frage, aber bla bla jarre jarre sry

Ich will die Datensaetze dreier PostgreDBs abgleichen.

Konkret geht es um Grafana DB Instanzen und deren Datasources und Dashboards
Die DS und Dashboards in der Liveinstanz sollen allen auch in QA und DEV verfuegbar sein.

Hierfuer gibt es zwei Tabellen

- datasource
- dashboards

Ich will nun in python die Daten in Live auslesen und Line per Line pruefen sind diese schon vorhanden, wenn nein mache ein insert und wenn ja mache ein update auf die Felder die sich unterscheiden. Alternativ koennte ich auch ein "on conflict do update" oder spaeter mit Postgre 9.5 "upsert" machen.

Code:
INSERT INTO users (id, level)
VALUES (1, 0)
ON CONFLICT (id) DO UPDATE
SET level = users.level + 1;
Ich haette bei der "on conflict" Variante jedoch immer ein update auf allen Tabellen.

Mein Frage also, faellt euch etwas in SQL einwas weniger update Operationen hat wenn der Datensatz schon vorhanden ist.
Ich streube mich etwas, das ganze in Pruefiterationen in python zu machen, da das etwas haesslich ist und bei Schemaaenderungen nur Aerger bringt

Hintergrund des ganzen. Ich habe in den einzelnen Umgebungen je zwei Toolmaschinen u.A. mit Grafana drauf.
in DEV und QA soll mit den Technologien rumgespielt werden und in dann in allen Stages identisch zur Verfuegung stehen, Test und Spiel Dashboards und Datasources sollen erhalten bleiben, deswegen kommt ein "dump restore" nicht in Frage.

Gruss Stefan