Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ganeshkandu/kdbv
mysql database auto schema migration library
https://github.com/ganeshkandu/kdbv
autodeploy automation composer data database database-migrations latest-version mariadb migrations-generator mysql mysql-database php schema seed update upgrade upgrade-tool version-changer version-control versioning
Last synced: 3 months ago
JSON representation
mysql database auto schema migration library
- Host: GitHub
- URL: https://github.com/ganeshkandu/kdbv
- Owner: GaneshKandu
- License: agpl-3.0
- Created: 2017-12-02T08:56:12.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2018-07-31T03:49:46.000Z (over 6 years ago)
- Last Synced: 2024-09-28T15:42:46.315Z (4 months ago)
- Topics: autodeploy, automation, composer, data, database, database-migrations, latest-version, mariadb, migrations-generator, mysql, mysql-database, php, schema, seed, update, upgrade, upgrade-tool, version-changer, version-control, versioning
- Language: PHP
- Homepage:
- Size: 108 KB
- Stars: 9
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# mysql database auto schema migration tool
![](https://github.com/GaneshKandu/kdbv/blob/master/.github/kdbv_image.png)
## how it works
> ```kdbv``` is Compare the structure of old database and latest database structure and make required queries to migrate old database- Create ```kdbv``` database
- dbv database is a single file witch contains database structure
- its created using ```make``` function
- ```upgrade``` function is Compare the contents of your old databases with ```kdbv``` file ( witch contains latest database structure ) and Automate your data migrations from old to latest
- using ```query``` function you can get all sql queries. that need to migrate database
- its return array of queries#### Give star to library if you like **[STAR++](https://github.com/GaneshKandu/kdbv/stargazers)**
## Features
* **Upgrade** - Database Upgrade
* **Easy** - Extremely easy to learn and use## Requirement
PHP 5.3+ and PDO extension installed
## Get Started
### Installation
This library is designed to be installed via [Composer](https://getcomposer.org/doc/).
Add the dependency into your projects composer.json.
```
{
"require": {
"ganeshkandu/kdbv": "*"
}
}
```Download the composer.phar
``` bash
curl -sS https://getcomposer.org/installer | php
```Install the library.
``` bash
php composer.phar install
```#### or
> To add in in your dependencies
``` bash
php composer.phar require ganeshkandu/kdbv
```## Auto loading
This library requires an autoloader, if you aren't already using one you can include [Composers autoloader](https://getcomposer.org/doc/01-basic-usage.md#autoloading).
``` php
require('vendor/autoload.php');
```## Usage
### steps to perform
* Create ```kdbv database``` using ```make``` function of your ```latest database```
* deploy ```kdbv database``` with your application
* You can simply overwrite latest version of your application on your old version of application ( **NOTES** latest version is deployed with ```kdbv database``` and ```kdbv library``` )
* now you have your latest changed files with your old database which need to be update to new changes database structure
* now ```upgrade``` your database using ```upgrade``` function
* **ALL DONE ENJOY**
* if you getting any issue [create an issue](https://github.com/GaneshKandu/kdbv/issues)### step 1
#### Instantiate & load()
```php
// Using kdbv namespace
namespace kanduganesh;
// just use this code to require auto loader on the top of your projects.
require 'vendor/autoload.php';
// Initialize
$obj = new kdbv(array(
'HOST' => '',
'DATABASE' => '',
'USER' => '',
'PASS' => '',
'PORT' => '',
'KDBV' => '', //name of kdbv database
'PREFIX' => '', //table prefix
));
```
> `````` is a name of ```kdbv database``` which to be deploy with your application
( _kdbv database contain database structure of your latest application_ )### step 2
> use ```$obj``` of step 1
#### create ```kdbv database``````
/*
Create kdbv database
notes :- during calling make function your mysql database should contain latest version database so it can store latest structure of database
*/
$obj->make();
```
### step 3
> use ```$obj``` of step 1
#### Get Mysql Upgrade Queries
```php
$sqls_queries = $obj->query();
foreach($sqls_queries as $query){
echo $query."\n";
}
```
## or
### Upgrade mysql database
```php
/*
upgrade mysql database
notes :- during calling upgrade function your kdbv database should be deployed with your application
Upgrade your old mysql database to your latest mysql database structure
*/
$obj->upgrade();
```## Best practices
* run ```$obj->make();``` all time you when you release new application version with change database structure#### Maintainers
- [Ganesh Kandu](https://github.com/GaneshKandu)
- [Google+](https://plus.google.com/u/0/+ganeshkandu)
- [Linkedin](https://www.linkedin.com/in/ganesh-kandu-42b14373/)
- [EMail](mailto:[email protected])
- [Follow](https://github.com/GaneshKandu)