-
Notifications
You must be signed in to change notification settings - Fork 0
/
load-swin-trovetest.go
100 lines (88 loc) · 2.6 KB
/
load-swin-trovetest.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
package main
import (
"fmt"
"os"
"database/sql"
_ "github.com/lib/pq"
"github.com/ilyakaznacheev/cleanenv"
"encoding/csv"
)
type ConfigDatabase struct {
Port int `yaml:"port" env-default:"5431" env-description:"Database host"`
Host string `yaml:"host" env-description:"Database host"`
Name string `yaml:"name" env-default:"postgres" env-description:"Database host"`
User string `yaml:"user" env-default:"postgres" env-description:"Database host"`
Password string `yaml:"password" env-description:"Database host"`
}
var cfg ConfigDatabase
type Env struct {
db *sql.DB
}
func main() {
fmt.Println("Hello, World!")
var config_file string
if fileExists("config.custom.yml") {
config_file = "./config.custom.yml"
} else {
config_file = "./config.yml"
}
err := cleanenv.ReadConfig(config_file, &cfg)
fmt.Printf("%+v", cfg)
fmt.Println(err)
psqlInfo := fmt.Sprintf("host=%s port=%d user=%s "+
"password=%s dbname=%s sslmode=disable",
cfg.Host, cfg.Port, cfg.User, cfg.Password, cfg.Name)
db, err := sql.Open("postgres", psqlInfo)
if err != nil {
fmt.Println("Successfully NOT connected!")
panic(err)
} else {
fmt.Println("Successfully connected! - main")
}
// Create an instance of Env containing the connection pool.
env := &Env{db: db}
defer env.db.Close()
createBiblioDB(env)
err = env.db.Ping()
if err != nil {
fmt.Println("Successfully NOT connected!")
panic(err)
}
fmt.Println("Swin - Trovetest")
fmt.Println("CSV - Header")
fswin, err := os.Open("csv/swin-trovetest.csv")
if err != nil {
panic(err)
}
defer fswin.Close()
// Read File into *lines* variable
lines_swin, err := csv.NewReader(fswin).ReadAll()
if err != nil {
panic(err)
}
// Loop through *lines*, create data object, each piece to their respective column
for hl, line_swin := range lines_swin {
if hl == 0 {
fmt.Println(line_swin[0] + " " + line_swin[1])
}
if hl > 0 {
break
}
}
fmt.Println("CSV - Rows")
// Loop through *lines*, create data object, each piece to their respective column
for hl, line_swin := range lines_swin {
if hl == 0 {
continue
}
if hl > 0 {
fmt.Println(line_swin[0] + " " + line_swin[1])
statement, err := env.db.Prepare("INSERT INTO stg_swin_trovetest (header_identifier , date_latest , metadata_identifier , metadata_identifier_file_id , url ) VALUES ($1, $2, $3, $4, $5)")
if err != nil {
fmt.Println(err)
return
}
statement.Exec(line_swin[0],line_swin[1],line_swin[2],line_swin[3],line_swin[4])
}
}
}