t4web / migrations
ZF2 Module for database migrations management.
Installs: 226
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 5
Forks: 0
Open Issues: 0
Type:zf2-module
Requires
- php: >=5.5
- t4web/filesystem: 1.0.0
- zendframework/zend-console: ^2.5
- zendframework/zend-db: ^2.5
- zendframework/zend-modulemanager: ^2.5
- zendframework/zend-mvc: ^2.5
- zendframework/zend-servicemanager: ^2.5
- zendframework/zend-text: ^2.5
Requires (Dev)
- phpunit/phpunit: ^4.8
- squizlabs/php_codesniffer: ^2.3
README
Migrations
Simple Migrations for Zend Framework 2.
Supported Drivers
The following DB adapter drivers are supported by this module.
- Pdo_Sqlite
- Pdo_Mysql
- Mysqli only if you configure the driver options with
'buffer_results' => true
Installation
Using composer
php composer.phar require t4web/migrations
or add to your composer.json
"require": { "t4web/migrations": "^2.0.0" }
Then add T4web\Migrations
to the modules
array in application.config.php
Configuration
Add to your configuration:
'migrations' => array( 'dir' => dirname(__FILE__) . '/../../../migrations', 'namespace' => 'T4web\Migrations', 'adapter' => 'Zend\Db\Adapter\Adapter', 'show_log' => true ),
General options:
The top-level key used to configure this module is migrations
.
Migration Configurations: Migrations
Each key under migrations
is a migrations configuration.
Sub-key: dir
The path to the directory where migration files are stored. Defaults to ./migrations
in the project root dir.
Sub-key: namespace
The class namespace that migration classes will be generated with. Defaults to T4web\Migrations
.
Sub-key: show_log
(optional)
Flag to log output of the migration. Defaults to true
.
Sub-key: adapter
(optional)
The service alias that will be used to fetch a Zend\Db\Adapter\Adapter
from the service manager.
Usage
Available commands
migration version
- show last applied migration (name
specifies a configured migration)migration list [--all]
- list available migrations (all
includes applied migrations)migration apply [<version>] [--force] [--down]
- apply or rollback migrationmigration generate
- generate migration class
Migration classes are stored in /path/to/project/migrations/
dir by default.
Generic migration class has name Version_<YmdHis>
and implement T4web\Migrations\Migration\MigrationInterface
.
Migration class example
<?php namespace T4web\Migrations; use `T4web\Migrations\Migration\AbstractMigration; class Version_20130403165433 extends AbstractMigration { public static $description = "Migration description"; public function up() { /** @var Zend\Db\ResultSet\ResultSet $result */ //$result = $this->executeQuery(/*Sql instruction*/); } public function down() { //throw new \RuntimeException('No way to go down!'); //$this->executeQuery(/*Sql instruction*/); } }
Accessing ServiceLocator In Migration Class
<?php namespace T4web\Migrations; use T4web\Migrations\Migration\AbstractMigration; class Version_20130403165433 extends AbstractMigration { public static $description = "Migration description"; public function up() { //$this->getServiceLocator()->get(/*Get service by alias*/); } public function down() { //$this->getServiceLocator()->get(/*Get service by alias*/); } }