Mercurial > gemma
changeset 5733:87b6dcfbab34
Disable triggers during mesh migrate.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Tue, 28 May 2024 18:25:45 +0200 |
parents | 9dbef85c6bb4 |
children | ea16ae748357 |
files | cmd/meshmigrate/main.go |
diffstat | 1 files changed, 23 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/cmd/meshmigrate/main.go Tue May 28 18:22:34 2024 +0200 +++ b/cmd/meshmigrate/main.go Tue May 28 18:25:45 2024 +0200 @@ -67,6 +67,9 @@ mesh_index = $2, mesh_checksum = $3 WHERE id = $4` + + disableTriggersSQL = `ALTER TABLE waterway.sounding_results DISABLE TRIGGER ALL` + enableTriggersSQL = `ALTER TABLE waterway.sounding_results ENABLE TRIGGER ALL` ) func restore(creds *credentials, dry bool) error { @@ -76,6 +79,15 @@ } defer db.Close() + if _, err := db.Exec(disableTriggersSQL); err != nil { + return err + } + defer func() { + if _, err := db.Exec(enableTriggersSQL); err != nil { + log.Printf("error: cannot restore triggers: %v\n", err) + } + }() + dir, err := os.Getwd() if err != nil { return err @@ -132,6 +144,17 @@ } defer db.Close() + if !dry { + if _, err := db.Exec(disableTriggersSQL); err != nil { + return err + } + defer func() { + if _, err := db.Exec(enableTriggersSQL); err != nil { + log.Printf("error: cannot restore triggers: %v\n", err) + } + }() + } + sql := fetchSQL + fmt.Sprintf("coalesce(mesh_index_version, 1) < %d", to) if len(ids) > 0 {