Downloadmysql database auto schema migration tool
`kdbv library`  migrations between versions of a application.
 
> upgrade your mysql database to current latest version from older version 
Common DB versioning problems
- 
Where should I keep track of schema changes?
 
- 
What changed since last production push?
 
- 
Did I apply this patch already to this server?
 
- 
Did I run the migrations on this copy of the app?
 
- 
Did I run the update script after updating the schema?
 
 
How kdbv library helps
- 
Each DB change encapsulated in a single migration ```kdbv database file```
 
- 
Deployment script automatically runs all necessary migration sql queries on production database immediately after code deploys
 
- 
Nothing to remember / eliminates human factor
 
- 
Easy to test, easy to reproduce
 
- 
A ```kdbv library``` is code that changes the database structure between versions
 
 
How its works
Like the source files in our project,the database is constantly changing too. That?s why we also need a way to track the changes of database versioning but using `kdbv` you don't need to keep track of changes just run make to create `kdbv database` and deploy with your latest change and run `update` function to change database automatically database upgraded thats is it 
Give star to library if you like STAR++
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. 
Add the dependency into your projects composer.json. {
  "require": {
    "ganeshkandu/kdbv": "*"
  }
}
 
Download the composer.phar curl -sS https://getcomposer.org/installer | php
 
Install the library. php composer.phar install
 
or
> To add in in your dependencies 
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. 
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
 
 
step 1
Instantiate & load()
// 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' => '<mysql_host>',
	'DATABASE' => '<mysql_database>',
	'USER' => '<database_user>',
	'PASS' => '<database_password>',
	'PORT' => '<mysql_port>',
	'KDBV' => '<kdbv_database_name>' //name of kdbv database
	'PREFIX' => '<table prefix>', //table prefix
));
 > `<kdbv_database_name>` 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
$sqls_queries = $obj->query();
foreach($sqls_queries as $query){
    echo $query."\n";
}
 or
Upgrade mysql database
/*
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
 |