ganeshkandu/kdbv

mysql database auto schema migration tool


Keywords
database, php, data, mysql, schema, composer, versioning, update, automation, upgrade, packagist, mariadb, version-control, mysql-database, upgrade-tool, database-migrations, version-changer, latest-version, autodeploy, seed
License
GPL-3.0

Documentation

mysql database auto schema migration tool

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

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