Giter Club home page Giter Club logo

kdbv's Introduction

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

kdbv's People

Contributors

ganeshkandu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.