Skip to content

Create SQL dumps in Go without external dependencies

License

Notifications You must be signed in to change notification settings

aliakseiz/go-mysqldump

 
 

Repository files navigation

Go MySQL dump

License Godoc ReportCard

Create MySQL dumps without mysqldump dependency.

Fork from JamesStewy/go-mysqldump. Includes pull request JamesStewy/go-mysqldump#14.

Features

Example

package main

import (
	"database/sql"
	"fmt"

	"github.com/aliakseiz/go-mysqldump"
	_ "github.com/go-sql-driver/mysql"
)

func main() {
	// Open connection to database
	config := mysql.NewConfig()
	config.User = "your-user"
	config.Passwd = "your-pw"
	config.DBName = "your-db"
	config.Net = "tcp"
	config.Addr = "your-hostname:your-port"

	dumpDir := "dumps"                                                     // you should create this directory
	dumpFilenameFormat := fmt.Sprintf("%s-20060102T150405", config.DBName) // accepts time layout string and add .sql at the end of file
	
	db, err := sql.Open("mysql", config.FormatDSN())
	if err != nil {
		fmt.Println("Error opening database: ", err)
		
		return
	}
	// Register database with mysqldump
	dumper, err := mysqldump.Register(db, dumpDir, dumpFilenameFormat, config.DBName)
	if err != nil {
		fmt.Println("Error registering database:", err)
		
		return
	}
	// Dump database to file
	if err = dumper.Dump(); err != nil {
		fmt.Println("Error dumping:", err)
		
		return
	}
	
	fmt.Printf("File is saved to %s", dumpFilenameFormat)
	// Close dumper, connected database and file stream.
	dumper.Close()
}

About

Create SQL dumps in Go without external dependencies

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%