gopli

DB replication tool to synchronize data with multi environments written in Golang.

Github stars Tracking Chart

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

Main metrics

Overview
Name With Ownertimakin/gopli
Primary LanguageGo
Program languageGo (Language Count: 1)
Platform
License:
所有者活动
Created At2016-09-01 23:43:21
Pushed At2017-01-15 13:08:35
Last Commit At2017-01-15 22:08:29
Release Count0
用户参与
Stargazers Count345
Watchers Count16
Fork Count19
Commits Count73
Has Issues Enabled
Issues Count8
Issue Open Count7
Pull Requests Count0
Pull Requests Open Count0
Pull Requests Close Count0
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private