fabiopaiva/pdo-simple-migration

Database version control using PDO connection

0.1.2 2016-02-13 15:55 UTC

This package is not auto-updated.

Last update: 2024-03-02 14:27:25 UTC


README

Simple migration is a minimalist tool to manage your database versioning.

Installation

composer require fabiopaiva/pdo-simple-migration

Installation

Configuration

This library tries to find a file called config.php in working directory with PDO setup, if file doesn't exist, you can send PDO parameters in command line.

config.php (optional)

<?php
    return [
        'db' => [
            'dsn' => 'mysql:host=localhost;dbname=myDb;port=3306;charset=UTF8',
            'username' => 'root',
            'password' => 'pass',
        ],
        'table' => 'migrations',
        'dir' => 'migrations'
    ];

table is the name of database table to control your versioning, migrations is default.

dir is the path where you want to store you migrations file.

Usage

Status

List current status of your migrations

vendor/bin/migration status

Status

Generate

Generate a empty migration

vendor/bin/migration generate

Generate

Generated code example

<?php

namespace PDOSimpleMigration\Migrations;

use PDOSimpleMigration\Library\AbstractMigration;

class Version20160128130854 extends AbstractMigration
{
    public static $description = "Migration description";

    public function up()
    {
        //$this->addSql(/*Sql instruction*/);
    }

    public function down()
    {
        //$this->addSql(/*Sql instruction*/);
    }
}

Migrate

Migrate to latest version

vendor/bin/migration migrate

Migrate

Execute

Execute specific migration version (up or down)

vendor/bin/migration execute version --up --down

Execute

Options

--dump

If --dump parameter is present, migration will only dump query in screen

--dsn and --username

If you don't want to create config.php file, you can send --dsn setup parameter. If you send --dsn parameter, you need to send --username parameter too. The prompt will ask your database password.

--dir

Directory where to save migrations classes, default migrations

--table

Table where to store migrations versioning history, default migrations

Issues

Please report issues to Github Issue Tracker