· 6 years ago · Mar 09, 2019, 11:00 AM
1package main
2
3import (
4 "database/sql"
5 "fmt"
6
7 _ "github.com/go-sql-driver/mysql"
8)
9
10var schemas = []string{
11 `
12 CREATE TABLE IF NOT EXISTS service_lock (
13 lock_id varchar(128) NOT NULL,
14 lock_holder varchar(128) NOT NULL,
15 last_seen_active timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
16 PRIMARY KEY (lock_id)
17 ) ENGINE=InnoDB
18 `,
19 `
20 CREATE TABLE IF NOT EXISTS service_version(
21 version tinyint UNSIGNED NOT NULL,
22 applied timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
23 PRIMARY KEY (version)
24 ) ENGINE=InnoDB
25 `,
26 `
27 INSERT IGNORE INTO service_version values(1, NOW())
28 `,
29}
30
31func main() {
32 db, err := sql.Open("mysql", "gleader:gleader@tcp(localhost:3306)/gleader")
33 if err != nil {
34 panic(err)
35 }
36 defer db.Close()
37
38 err = db.Ping()
39 if err != nil {
40 panic(err)
41 }
42
43 tx, err := db.Begin()
44 if err != nil {
45 panic(err)
46 }
47
48 for _, query := range schemas {
49 _, err := tx.Exec(query)
50 if err != nil {
51 fmt.Printf("%v\n", err)
52 }
53 }
54 err = tx.Commit()
55 if err != nil {
56 panic(err)
57 }
58}