Skip to content

Commit 007f021

Browse files
authored
Merge pull request #9 from ZachCheung/master
minor update in README example code
2 parents 38ef509 + b51926e commit 007f021

File tree

1 file changed

+47
-38
lines changed

1 file changed

+47
-38
lines changed

README.md

Lines changed: 47 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -6,48 +6,57 @@ Create MYSQL dumps in Go without the `mysqldump` CLI as a dependancy.
66
package main
77

88
import (
9-
"database/sql"
10-
"fmt"
9+
"database/sql"
10+
"fmt"
11+
"os"
1112

12-
"github.com/jamf/go-mysqldump"
13-
"github.com/go-sql-driver/mysql"
13+
"github.com/go-sql-driver/mysql"
14+
"github.com/jamf/go-mysqldump"
1415
)
1516

1617
func main() {
17-
// Open connection to database
18-
config := mysql.NewConfig()
19-
config.User = "your-user"
20-
config.Passwd = "your-pw"
21-
config.DBName = "your-db"
22-
config.Net = "tcp"
23-
config.Addr = "your-hostname:your-port"
24-
25-
dumpDir := "dumps" // you should create this directory
26-
dumpFilenameFormat := fmt.Sprintf("%s-20060102T150405", config.DBName) // accepts time layout string and add .sql at the end of file
27-
28-
db, err := sql.Open("mysql", config.FormatDSN())
29-
if err != nil {
30-
fmt.Println("Error opening database: ", err)
31-
return
32-
}
33-
34-
// Register database with mysqldump
35-
dumper, err := mysqldump.Register(db, dumpDir, dumpFilenameFormat)
36-
if err != nil {
37-
fmt.Println("Error registering databse:", err)
38-
return
39-
}
40-
41-
// Dump database to file
42-
err := dumper.Dump()
43-
if err != nil {
44-
fmt.Println("Error dumping:", err)
45-
return
46-
}
47-
fmt.Printf("File is saved to %s", dumpFilenameFormat)
48-
49-
// Close dumper, connected database and file stream.
50-
dumper.Close()
18+
// Open connection to database
19+
config := mysql.NewConfig()
20+
config.User = "your-user"
21+
config.Passwd = "your-pw"
22+
config.DBName = "your-db"
23+
config.Net = "tcp"
24+
config.Addr = "your-hostname:your-port"
25+
26+
dumpDir := "dumps"
27+
dumpFilenameFormat := fmt.Sprintf("%s-20060102T150405", config.DBName) // accepts time layout string and add .sql at the end of file
28+
29+
if err := os.MkdirAll(dumpDir, 0755); err != nil {
30+
fmt.Println("Error mkdir:", err)
31+
return
32+
}
33+
34+
db, err := sql.Open("mysql", config.FormatDSN())
35+
if err != nil {
36+
fmt.Println("Error opening database:", err)
37+
return
38+
}
39+
40+
// Register database with mysqldump
41+
dumper, err := mysqldump.Register(db, dumpDir, dumpFilenameFormat)
42+
if err != nil {
43+
fmt.Println("Error registering databse:", err)
44+
return
45+
}
46+
47+
// Dump database to file
48+
if err := dumper.Dump(); err != nil {
49+
fmt.Println("Error dumping:", err)
50+
return
51+
}
52+
if file, ok := dumper.Out.(*os.File); ok {
53+
fmt.Println("File is saved to", file.Name())
54+
} else {
55+
fmt.Println("It's not part of *os.File, but dump is done")
56+
}
57+
58+
// Close dumper, connected database and file stream.
59+
dumper.Close()
5160
}
5261
```
5362

0 commit comments

Comments
 (0)