mysql database auto schema migration tool

1.0.7 2018-07-29 04:28 UTC

This package is auto-updated.

Last update: 2021-09-05 12:11:37 UTC


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++


  • Upgrade - Database Upgrade
  • Easy - Extremely easy to learn and use


PHP 5.3+ and PDO extension installed

Get Started


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 | php

Install the library.

php composer.phar install


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.



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
  • 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 

step 3

use $obj of step 1

Get Mysql Upgrade Queries

$sqls_queries = $obj->query();
foreach($sqls_queries as $query){
    echo $query."\n";


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

Best practices

  • run $obj->make(); all time you when you release new application version with change database structure