Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vielhuber/kiwi
🥝 Provides a git-like experience for databases. 🥝
https://github.com/vielhuber/kiwi
Last synced: 19 days ago
JSON representation
🥝 Provides a git-like experience for databases. 🥝
- Host: GitHub
- URL: https://github.com/vielhuber/kiwi
- Owner: vielhuber
- Created: 2017-01-29T23:03:35.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2017-08-06T21:18:07.000Z (over 7 years ago)
- Last Synced: 2024-04-18T10:10:13.859Z (8 months ago)
- Language: PHP
- Homepage:
- Size: 1.67 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🥝 kiwi 🥝
**kiwi provides a git-like experience for relational databases.**
![kiwi in action](https://raw.githubusercontent.com/vielhuber/kiwi/master/kiwi.gif)
This is currently a proof-of-concept.
## Features
* No sql triggers
* No binary / ddl logs
* Support for mysql & mariadb
* Works with any shared hosting provider that runs linux
* Detects [data and schema changes](https://github.com/vielhuber/magicdiff), at the same time
* Fast
* Command line tool usage
* Requires only ssh access to remote repository
* [Search/replace layer](https://github.com/vielhuber/magicreplace) for environment specific values (serialize safe)
* Works together with WordPress, Shopware or any other raw sql database## Similiar tools
* [mergebot](https://mergebot.com)
## Planned
* Support for postgresql
* Advanced conflict solver
* Support for syncing views, trigger, functions and transactions
* Test suite
* Branching and other git-like features## Disclaimer
This does not prevent you from taking backups. Use this script at your own risk.
## Dependencies
* [php7](http://php.net/)
* [diff](https://linux.die.net/man/1/diff)
* [patch](https://linux.die.net/man/1/patch)
* [scp](https://linux.die.net/man/1/scp)## Installation
Install/update globally:
```
wget https://raw.githubusercontent.com/vielhuber/kiwi/master/kiwi.phar
chmod +x kiwi.phar
sudo mv kiwi.phar /usr/local/bin/kiwi
```## Usage
First setup kiwi on client:
`kiwi init`
Change settings for local/remote database:
`nano .kiwi/config.json`
Get current status:
`kiwi status`
Push changes to remote repo:
`kiwi push`
Pull state of remote repo:
`kiwi pull`