t4web / migrations
ZF2 Module for database migrations management.
Installs: 228
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 4
Forks: 0
Open Issues: 0
Type:zf2-module
pkg:composer/t4web/migrations
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 (namespecifies a configured migration)migration list [--all]- list available migrations (allincludes 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*/); } }