annotate cmd/bottlenecks/main.go @ 977:4a2ca0e20006

Fixed build error. Copied file to the wrong place and said 'go build' to another wrong place. Argh.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Thu, 18 Oct 2018 17:30:53 +0200
parents d013fa5554cc
children a244b18cb916
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
566
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
1 package main
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
2
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
3 import (
574
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
4 "database/sql"
566
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
5 "flag"
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
6 "fmt"
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
7 "log"
574
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
8 "regexp"
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
9 "strconv"
589
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
10 "strings"
574
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
11
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
12 "github.com/jackc/pgx"
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
13 "github.com/jackc/pgx/stdlib"
566
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
14
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
15 "gemma.intevation.de/gemma/pkg/soap/ifbn"
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
16 )
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
17
574
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
18 const insertSQL = `INSERT INTO waterway.bottlenecks (
589
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
19 bottleneck_id,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
20 fk_g_fid,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
21 objnam,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
22 nobjnm,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
23 stretch,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
24 area,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
25 rb,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
26 lb,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
27 responsible_country,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
28 revisiting_time,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
29 limiting,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
30 date_info,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
31 source_organization
574
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
32 ) VALUES(
589
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
33 $1,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
34 isrs_fromText($2),
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
35 $3,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
36 $4,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
37 isrsrange(isrs_fromText($5), isrs_fromText($6)),
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
38 ST_MakePolygon(ST_ExteriorRing(ST_Buffer(ST_SetSRID(ST_Makepoint(13.05501, 47.80949), 4326), 0.01)))::Geography,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
39 $7,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
40 $8,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
41 $9,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
42 $10,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
43 $11,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
44 $12,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
45 $13
574
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
46 ) ON CONFLICT (bottleneck_id) DO NOTHING`
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
47
589
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
48 const insertDumpSQL = `INSERT INTO waterway.bottlenecks (
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
49 bottleneck_id,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
50 fk_g_fid,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
51 objnam,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
52 nobjnm,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
53 stretch,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
54 area,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
55 rb,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
56 lb,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
57 responsible_country,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
58 revisiting_time,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
59 limiting,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
60 date_info,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
61 source_organization
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
62 ) VALUES(
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
63 %s,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
64 isrs_fromText(%s),
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
65 %s,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
66 %s,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
67 isrsrange(isrs_fromText(%s), isrs_fromText(%s)),
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
68 ST_MakePolygon(ST_ExteriorRing(ST_Buffer(ST_SetSRID(ST_Makepoint(13.05501, 47.80949), 4326), 0.01)))::Geography,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
69 %s,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
70 %s,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
71 %s,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
72 %d,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
73 %s,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
74 %s::timestamp with time zone,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
75 %s
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
76 ) ON CONFLICT (bottleneck_id) DO NOTHING;
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
77 `
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
78
574
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
79 var (
589
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
80 url = flag.String("url", "", "the IFBN service")
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
81 dump = flag.Bool("dump", false, "dump SQL insert statements")
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
82
574
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
83 insecure = flag.Bool("insecure", false, "skip SSL verification")
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
84 dbhost = flag.String("dbhost", "localhost", "database host")
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
85 dbport = flag.Uint("dbport", 5432, "database port")
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
86 dbname = flag.String("dbname", "gemma", "database user")
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
87 dbuser = flag.String("dbuser", "scott", "database user")
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
88 dbpassword = flag.String("dbpw", "tiger", "database password")
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
89 dbssl = flag.String("dbssl", "prefer", "database SSL mode")
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
90 )
566
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
91
574
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
92 func run(fn func(*sql.DB) error) error {
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
93
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
94 // To ease SSL config ride a bit on parsing.
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
95 cc, err := pgx.ParseConnectionString("sslmode=" + *dbssl)
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
96 if err != nil {
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
97 return err
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
98 }
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
99
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
100 // Do the rest manually to allow whitespace in user/password.
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
101 cc.Host = *dbhost
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
102 cc.Port = uint16(*dbport)
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
103 cc.User = *dbuser
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
104 cc.Password = *dbpassword
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
105 cc.Database = *dbname
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
106
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
107 db := stdlib.OpenDB(cc)
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
108 defer db.Close()
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
109
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
110 return fn(db)
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
111 }
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
112
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
113 var rblbRe = regexp.MustCompile(`(..)_(..)`)
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
114
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
115 func splitRBLB(s string) (string, string) {
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
116 m := rblbRe.FindStringSubmatch(s)
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
117 if len(m) == 0 {
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
118 return "", ""
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
119 }
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
120 return m[1], m[2]
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
121 }
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
122
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
123 func revisitingTime(s string) int {
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
124 v, err := strconv.Atoi(s)
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
125 if err != nil {
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
126 v = 0
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
127 }
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
128 return v
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
129 }
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
130
589
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
131 func quote(s string) string {
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
132 return "'" + strings.Replace(s, "'", "'''", -1) + "'"
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
133 }
566
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
134
589
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
135 func dumpSQLStatements(bns []*ifbn.BottleNeckType) error {
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
136
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
137 fmt.Println("BEGIN;")
566
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
138
589
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
139 for i := range bns {
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
140 bn := bns[i]
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
141 rb, lb := splitRBLB(bn.Rb_lb)
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
142
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
143 var limiting, country string
566
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
144
589
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
145 if bn.Limiting_factor != nil {
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
146 limiting = string(*bn.Limiting_factor)
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
147 }
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
148
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
149 if bn.Responsible_country != nil {
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
150 country = string(*bn.Responsible_country)
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
151 }
566
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
152
589
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
153 if _, err := fmt.Printf(insertDumpSQL,
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
154 quote(bn.Bottleneck_id),
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
155 quote(bn.Fk_g_fid),
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
156 quote(bn.OBJNAM),
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
157 quote(bn.NOBJNM),
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
158 quote(bn.From_ISRS), quote(bn.To_ISRS),
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
159 quote(rb),
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
160 quote(lb),
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
161 quote(country),
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
162 revisitingTime(bn.Revisiting_time),
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
163 quote(limiting),
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
164 quote(bn.Date_Info.Format("2006-01-02 15:04:05.999 MST")),
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
165 quote(bn.Source),
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
166 ); err != nil {
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
167 return err
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
168 }
566
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
169 }
591
d013fa5554cc bottlenecks: Even if END is a synonym for COMMIT in PostgreSQL use COMMIT instead.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 589
diff changeset
170 _, err := fmt.Println("COMMIT;")
589
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
171 return err
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
172 }
566
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
173
589
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
174 func storeInDatabase(bns []*ifbn.BottleNeckType) error {
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
175 return run(func(db *sql.DB) error {
574
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
176
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
177 stmt, err := db.Prepare(insertSQL)
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
178 if err != nil {
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
179 return err
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
180 }
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
181 defer stmt.Close()
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
182
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
183 tx, err := db.Begin()
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
184 if err != nil {
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
185 return err
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
186 }
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
187
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
188 st := tx.Stmt(stmt)
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
189
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
190 for i := range bns {
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
191 bn := bns[i]
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
192 rb, lb := splitRBLB(bn.Rb_lb)
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
193
575
5484558e1b50 Fixed statements to insert bottlenecks.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 574
diff changeset
194 var limiting, country string
574
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
195
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
196 if bn.Limiting_factor != nil {
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
197 limiting = string(*bn.Limiting_factor)
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
198 }
566
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
199
575
5484558e1b50 Fixed statements to insert bottlenecks.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 574
diff changeset
200 if bn.Responsible_country != nil {
5484558e1b50 Fixed statements to insert bottlenecks.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 574
diff changeset
201 country = string(*bn.Responsible_country)
5484558e1b50 Fixed statements to insert bottlenecks.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 574
diff changeset
202 }
5484558e1b50 Fixed statements to insert bottlenecks.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 574
diff changeset
203
5484558e1b50 Fixed statements to insert bottlenecks.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 574
diff changeset
204 fmt.Printf("%s '%s' %s %s\n", bn.Fk_g_fid, bn.OBJNAM, bn.From_ISRS, bn.To_ISRS)
574
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
205
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
206 if _, err := st.Exec(
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
207 bn.Bottleneck_id,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
208 bn.Fk_g_fid,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
209 bn.OBJNAM,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
210 bn.NOBJNM,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
211 bn.From_ISRS, bn.To_ISRS,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
212 rb,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
213 lb,
575
5484558e1b50 Fixed statements to insert bottlenecks.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 574
diff changeset
214 country,
574
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
215 revisitingTime(bn.Revisiting_time),
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
216 limiting,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
217 bn.Date_Info,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
218 bn.Source,
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
219 ); err != nil {
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
220 tx.Rollback()
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
221 return err
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
222 }
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
223 }
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
224
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
225 return tx.Commit()
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
226 })
589
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
227 }
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
228
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
229 func main() {
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
230
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
231 flag.Parse()
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
232
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
233 client := ifbn.NewIBottleneckService(*url, *insecure, nil)
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
234
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
235 req := &ifbn.Export_bn_by_isrs{}
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
236
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
237 resp, err := client.Export_bn_by_isrs(req)
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
238 if err != nil {
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
239 log.Fatalf("error: %v\n", err)
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
240 }
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
241
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
242 if resp.Export_bn_by_isrsResult == nil {
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
243 return
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
244 }
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
245 bns := resp.Export_bn_by_isrsResult.BottleNeckType
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
246
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
247 if *dump {
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
248 err = dumpSQLStatements(bns)
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
249 } else {
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
250 err = storeInDatabase(bns)
26cdc43ff977 bottlenecks: Add a -dump flag to dump INSERT statements instead of writing directly to the database.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 576
diff changeset
251 }
574
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
252
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
253 if err != nil {
18c007104106 Try to insert bottlenecks from IFBN service into database.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 566
diff changeset
254 log.Fatalf("error: %v\n", err)
566
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
255 }
5e45f441aed6 Added SOAP client for the IFBN bottleneck service.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
256 }