indigerd/yii2-migration-aware-module

Migration aware module extension for Yii2.

Installs: 52 217

Dependents: 1

Suggesters: 0

Security: 0

Stars: 4

Watchers: 2

Forks: 5

Open Issues: 0

Type:yii2-extension

V1.0.3 2018-01-18 08:39 UTC

This package is auto-updated.

Last update: 2024-03-21 03:20:45 UTC


README

Yii2 extension that allows modules to store migrations in their own folders and make them available for yii/migrate command

##Installation

The preferred way to install this extension is through composer.

Either run

php composer.phar require "indigerd/yii2-migration-aware-module" "*"

or add

"indigerd/yii2-migration-aware-module" : "*"

to the require section of your application's composer.json file.

##Usage

In your console config file in your migration section replace with class property and add configFiles array property. configFiles is array of configs where component will scan for your migration aware modules. By default configFiles contains backend and frontend configs from advanced application template. For example:

        'migrate'=>[
            'class' => 'indigerd\migrationaware\controllers\MigrateController',
            'configFiles' => [
                '@backend/config/web.php',
                '@frontend/config/web.php',
                '@someAnotherAliasHere/config/web.php',
            ],
            
            'migrationPath'=>'@common/migrations/db', //leave as it was before
            'migrationTable'=>'{{%system_db_migration}}' //leave as it was before
        ],

In your modules that have migrations your need either to implement indigerd\migrationaware\MigrationAwareInterface or to extend from indigerd\migrationaware\MigrationAwareModule. If you will implement interface you should implement method getMigrationPath and return in it folder which contains your module migrations. For example:

    public function getMigrationPath()
    {
        return __DIR__.'/migrations';
    }

##License

yii2-migration-aware-module is released under the MIT License. See the bundled LICENSE file for details.