2017 © Pedro Peláez
 

library db-migration

Database migrations made simple

image

console-helpers/db-migration

Database migrations made simple

  • Monday, January 29, 2018
  • by aik099
  • Repository
  • 1 Watchers
  • 0 Stars
  • 648 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 0 Forks
  • 2 Open issues
  • 2 Versions
  • 1 % Grown

The README.md

DB-Migration

CI codecov Scrutinizer Code Quality, (*1)

Latest Stable Version Total Downloads License, (*2)

DB-Migration is a library allows to run migrations on SQLite databases with ease., (*3)

Goals, when developing the library:, (*4)

  • allow initializing library without knowing database connection details upfront
  • allow creating new migration file without knowing database connection details upfront
  • allow using several databases in parallel
  • being framework agnostic

Usage

Initialization

use ConsoleHelpers\DatabaseMigration\MigrationManager;
use ConsoleHelpers\DatabaseMigration\PhpMigrationRunner;
use ConsoleHelpers\DatabaseMigration\SqlMigrationRunner;
use Pimple\Container;

// 1. Create migration manager instance.
$migration_manager = new MigrationManager(
    '/path/to/migrations', // Directory containing migrations.
    new Container() // Anything implementing "ArrayAccess".
);

// 2. Register migration runners.
$migration_manager->registerMigrationRunner(new SqlMigrationRunner());
$migration_manager->registerMigrationRunner(new PhpMigrationRunner());

Creating new migration

The following code will create YYYYMMDD_HHMM_name.ext migration file in configured migration folder and return it's name., (*5)

use ConsoleHelpers\DatabaseMigration\MigrationManager;

$migration_name = $migration_manager->createMigration(
    'example_migration', // any valid filename
    'sql' // 'php' or 'sql' (comes from migration runner)
);

As a result:, (*6)

  • the /path/to/migrations/20160519_2155_example_migration.sql file would be created
  • the 20160519_2155_example_migration.sql would be returned to $migration_name variable

Migration Templates

SQL:, (*7)

Empty file., (*8)

PHP:, (*9)

<?php
use ConsoleHelpers\DatabaseMigration\MigrationContext;

return function (MigrationContext $context) {
    // Write PHP code here.
};

Running migrations

use Aura\Sql\ExtendedPdo;
use ConsoleHelpers\DatabaseMigration\MigrationManager;
use ConsoleHelpers\DatabaseMigration\MigrationContext;
use Pimple\Container;

// 1. Create database connection.
$database = new ExtendedPdo('sqlite:/path/to/database.sqlite');

// 2. Run migrations.
$migration_manager->runMigrations(
    // Context consists of the database and container.
    new MigrationContext($database)
);

Installation

Execute this command to add dependencies:, (*10)

php composer.phar require console-helpers/db-migration:^0.1

Requirements

Contributing

See CONTRIBUTING file., (*11)

License

DB-Migration is released under the BSD-3-Clause License. See the bundled LICENSE file for details., (*12)

The Versions

29/01 2018

dev-master

9999999-dev

Database migrations made simple

  Sources   Download

BSD-3-Clause BSD 3-Clause

The Requires

 

The Development Requires

by Alexander Obuhovich

database migration sqlite

09/06 2016

v0.1.0

0.1.0.0

Database migrations made simple

  Sources   Download

BSD 3-Clause

The Requires

 

The Development Requires

by Alexander Obuhovich

database migration sqlite