Added setup command and sql tables

This commit is contained in:
2017-08-26 20:51:35 +02:00
parent 0c91395e52
commit 7b4b4a58b1
3 changed files with 99 additions and 0 deletions
+54
View File
@@ -0,0 +1,54 @@
package main
import (
"database/sql"
"flag"
"fmt"
"io/ioutil"
"log"
"os"
"strings"
_ "github.com/go-sql-driver/mysql"
)
var flagUser = flag.String("user", "logbot4", "MySQL user")
var flagPassword = flag.String("password", "logbot4", "MySQL password")
var flagDatabase = flag.String("database", "logbot4", "MySQL database")
func main() {
flag.Parse()
connString := fmt.Sprintf("%s:%s@/%s", *flagUser, *flagPassword, *flagDatabase)
db, err := sql.Open("mysql", connString)
if err != nil {
log.Fatalf("Could not open SQL connection: %s", err)
}
file, err := os.Open("./data/setup.sql")
if err != nil {
log.Fatalf("Could not open ./data/setup.sql: %s", err)
}
data, err := ioutil.ReadAll(file)
if err != nil {
log.Fatalf("Could not read setup.sql: %s", err)
}
statements := strings.Split(string(data), ";")
for _, statement := range statements {
statement := strings.Trim(statement, "\n\t  ")
if len(statement) <= 1 {
continue
}
result, err := db.Exec(statement)
if err != nil {
log.Fatalf("Could not execute statement: %s", err)
}
affected, _ := result.RowsAffected()
log.Printf("%d rows affected", affected)
}
}