gopli
Database backup between remote hosts (or local) written in Golang.
Feature
- High-speed parallel data fetching with goroutine concurrency
- Reuse options of connection with TOML configuration
- Gopli will release you from an annoying replication setting
TODO
- Currently MySQL only. so adopt to other management systems
- Data mask for password, credit-card number, etc...
- Response packet regulation and compression for fetched data
Install
go get github.com/timakin/gopli
Usage
Write down setting file in toml.
[database]
  [database.local]
  host = "localhost"
  management_system = "mysql"
  name = "app_development"
  user = "root"
  password = ""
  [database.staging]
  host = "xxx.xxx.xxx.xxx"
  management_system = "mysql"
  name = "app_staging"
  user = "root"
  password = ""
  [database.production]
  host = "yyy.yyy.yyy.yyy"
  management_system = "mysql"
  name = "app_production"
  user = "root"
  password = ""
[ssh]
  [ssh.local]
  host = "localhost" # or "127.0.0.1"
  [ssh.staging]
  host = "xxx.xxx.xxx.xxx"
  port = "22"
  user = "timakin"
  key = "~/.ssh/id_rsa_staging"
  [ssh.production]
  host = "yyy.yyy.yyy.yyy"
  port = "22"
  user = "remoteuser"
  key = "~/.ssh/id_rsa_prod"
gopli sync -from production -to staging -c config/gopli.toml
 projecs by owner
                                                                (
                                                                projecs by owner
                                                                (