Skip to content

Create SQL dumps in Go without external dependencies

License

Notifications You must be signed in to change notification settings

sparkedhost/go-mysqldump

This branch is 8 commits ahead of, 14 commits behind jamf/go-mysqldump:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Jun 11, 2023
1b61636 · Jun 11, 2023
Dec 11, 2022
Jan 4, 2018
Dec 11, 2022
Jan 7, 2017
Jun 11, 2023
Dec 12, 2022
Jan 22, 2021
Dec 11, 2022
Jan 22, 2021
Dec 12, 2022
Dec 11, 2022
Jan 28, 2019
Jan 24, 2019

Repository files navigation

Go MySQL Dump

Create MySQL dumps in Go without the mysqldump CLI as a dependancy.

This is a fork that aims to fix the weird date formatting behavior.

Simple Example

package main

import (
	"database/sql"
	"fmt"
	"os"

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

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"
	timeFormat := fmt.Sprintf(time.Now().Format(time.RFC3339)) // accepts time layout string and add .sql at the end of file
	fileName := fmt.Sprintf("%s", config.DBName)

	if err := os.MkdirAll(dumpDir, 0755); err != nil {
		fmt.Println("Error mkdir:", err)
		return
	}

	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, timeFormat, fileName)
	if err != nil {
		fmt.Println("Error registering databse:", err)
		return
	}

	// Dump database to file
	if err := dumper.Dump(); err != nil {
		fmt.Println("Error dumping:", err)
		return
	}
	if file, ok := dumper.Out.(*os.File); ok {
		fmt.Println("File is saved to", file.Name())
	} else {
		fmt.Println("It's not part of *os.File, but dump is done")
	}

	// Close dumper, connected database and file stream.
	dumper.Close()
}

GoDoc

About

Create SQL dumps in Go without external dependencies

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%