Skip to content

GaneshKandu/kdbv

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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