All Projects → timakin → Gopli

timakin / Gopli

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

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Gopli

Pg chameleon
MySQL to PostgreSQL replica system
Stars: ✭ 274 (-16.21%)
Mutual labels:  database, mysql, replication
Reiner
萊納 - A MySQL wrapper which might be better than the ORMs and written in Golang
Stars: ✭ 19 (-94.19%)
Mutual labels:  database, mysql, replication
Symmetric Ds
SymmetricDS is a database and file synchronization solution that is platform-independent, web-enabled, and database agnostic. SymmetricDS was built to make data replication across two to tens of thousands of databases and file systems fast, easy and resilient. We specialize in near real time, bi-directional data replication across large node networks over the WAN or LAN.
Stars: ✭ 450 (+37.61%)
Mutual labels:  database, mysql, replication
Sequelizer
A GUI Desktop App for export sequelize models from database automatically.
Stars: ✭ 273 (-16.51%)
Mutual labels:  database, mysql
Crecto
Database wrapper and ORM for Crystal, inspired by Ecto
Stars: ✭ 325 (-0.61%)
Mutual labels:  database, mysql
Wetland
A Node.js ORM, mapping-based. Works with MySQL, PostgreSQL, SQLite and more.
Stars: ✭ 261 (-20.18%)
Mutual labels:  database, mysql
Dbq
Zero boilerplate database operations for Go
Stars: ✭ 273 (-16.51%)
Mutual labels:  database, mysql
Server
EQEmu - Open Source EverQuest Server
Stars: ✭ 319 (-2.45%)
Mutual labels:  database, mysql
Rdbc
Rust DataBase Connectivity (RDBC) :: Common Rust API for database drivers
Stars: ✭ 328 (+0.31%)
Mutual labels:  database, mysql
Sql exporter
Database agnostic SQL exporter for Prometheus
Stars: ✭ 301 (-7.95%)
Mutual labels:  database, mysql
Crud
Relational database library for SQL databases & Go.
Stars: ✭ 296 (-9.48%)
Mutual labels:  database, mysql
Yiigo
🔥 Go 轻量级开发通用库 🚀🚀🚀
Stars: ✭ 304 (-7.03%)
Mutual labels:  toml, mysql
Echo Web
Go web framework Echo example. 在线演示☞迁移ing❌
Stars: ✭ 409 (+25.08%)
Mutual labels:  toml, mysql
Mikro Orm
TypeScript ORM for Node.js based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, MySQL, MariaDB, PostgreSQL and SQLite databases.
Stars: ✭ 3,874 (+1084.71%)
Mutual labels:  database, mysql
Architect
A set of tools which enhances ORMs written in Python with more features
Stars: ✭ 320 (-2.14%)
Mutual labels:  database, mysql
Bitnami Docker Mariadb
Bitnami MariaDB Docker Image
Stars: ✭ 251 (-23.24%)
Mutual labels:  database, mysql
Php Crud Api
Single file PHP script that adds a REST API to a SQL database
Stars: ✭ 2,904 (+788.07%)
Mutual labels:  database, mysql
Rel
💎 Modern Database Access Layer for Golang - Testable, Extendable and Crafted Into a Clean and Elegant API
Stars: ✭ 317 (-3.06%)
Mutual labels:  database, mysql
Gorm Bulk Insert
implement BulkInsert using gorm, just pass a Slice of Struct. Simple and compatible.
Stars: ✭ 241 (-26.3%)
Mutual labels:  database, mysql
Sqlfiddle3
New version based on vert.x and docker
Stars: ✭ 242 (-25.99%)
Mutual labels:  database, mysql

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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].