PHPackages                             crudschool/yii2-migration-generator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. crudschool/yii2-migration-generator

ActiveYii2-extension[Database &amp; ORM](/categories/database)

crudschool/yii2-migration-generator
===================================

Set of gii tools for generating files for migration by schema of table , phpdoc or table data

1.1.11(7y ago)023MITPHP

Since Jul 29Pushed 7y agoCompare

[ Source](https://github.com/sergeydudka/migration)[ Packagist](https://packagist.org/packages/crudschool/yii2-migration-generator)[ RSS](/packages/crudschool-yii2-migration-generator/feed)WikiDiscussions master Synced 2d ago

READMEChangelogDependencies (4)Versions (9)Used By (0)

Migration Generator
===================

[](#migration-generator)

- generate migration files (not dumps!) with indexes, and foreign keys, for one table, comma separated list of tables, by part of table name, for all tables by
- generate migrations based on table data - in two ways - as batchInsert Query or as insert via model
- generate migrations based on PHPDOC and model properties

### Installation

[](#installation)

The preferred way to install this extension is through [composer](http://getcomposer.org/download/).

Either run

```
php composer.phar require -dev --prefer-dist crudschool/yii2-migration-generator:~1.1

```

or

```
composer require -dev --prefer-dist crudschool/yii2-migration-generator:~1.1

```

or add

```
"crudschool/yii2-migration-generator": "~1.1"

```

to the require-dev section of your `composer.json` file.

Just install, go to gii and use (By default composer bootstrap hook)

### ANNOTATION SYNTAX

[](#annotation-syntax)

In general the syntax of column definitions is based on style of yii-migration, only separated by "|" and provide a little more opportunities for reducing code

- as you see in examples - empty brackets not necessary
- also shortcut expr() will be replaced to defaultExpression() and default() to defaultValue

You can add annotations in your model(not necessary AR or yii\\base\\Model or Object or stdClass)

`@db (db2)` - specify connection id required for migration 'db' - by default"

`@table ({{%my_table}})`- specify table for migration"

**Supported column annotations:**

- As separate annotation above class or above current variable

```
/**
* @column (name) string|notNull|default('SomeValue')
*/
```

- As addition to @property or @var definition

```
   /**
    * @var int $id @column pk()
   **/
   public $id;
   /**
    * @var string $route @column string(100)|notNull()
   **/
   public $route;

```

```
/**
 * @property integer    $id         @column pk|comment("Id")
 * @property string     $username   @column string(100)|unique|notNull|default("Vasya")
 * @property string     $email      @column string(200)|unique()|defaultValue("123@mail.ru")
 * @property string     $password   @column string(200)|notNull|expr(null)
 * @property string     $created_at @column string(200)|notNull|expr('CURRENT_TIMESTAMP')
**/
class TestModel extends ActiveRecord{

```

### Customizing

[](#customizing)

##### Use Own templates

[](#use-own-templates)

Copy default templates from folders `vendor/crudschool/yii2-migration-generator/gii/default_structure //schema migrations``vendor/crudschool/yii2-migration-generator/gii/default_data //data migrations`to some project directory, for example `@backend/gii/templates/migrator_data;``@backend/gii/templates/migrator_schema;`

Change gii configuration like this

```
$config['modules']['gii'] = [
        'class' => 'yii\gii\Module',
        'allowedIPs' => ['127.0.0.1', 'localhost', '::1'],
        'generators' => [
            'migrik'=>[
                        'class'=>\crudschool\migrik\gii\StructureGenerator::class,
                        'templates'=>
                        [
                             'custom'=>'@backend/gii/templates/migrator_schema'
                        ]
            ],
            'migrikdata'=>[
                        'class'=>\crudschool\migrik\gii\DataGenerator::class,
                        'templates'=>
                        [
                            'custom'=>'@backend/gii/templates/migrator_data'
                        ]
            ],
        ]
]
```

##### Use own resolver for definition of columns

[](#use-own-resolver-for-definition-of-columns)

- create new class, inherited from \\crudschool\\migrik\\resolver\*ColumnResolver
    - override required methods, or create methods for exclusive columns based on database types - see crudschool\\migrik\\resolver\\BaseColumnResolver resolveColumn() phpdoc and realization

##### Use own resolver for definition of indexes or relations

[](#use-own-resolver-for-definition-of--indexes-or-relations)

- create new class, inherited from \\crudschool\\migrik\\resolver\\TableResolver
- in bootsrap your apps add injection

`\Yii::$container->set(IMigrationTableResolver::class, YourTableResolver::class);`

###  Health Score

28

—

LowBetter than 52% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity68

Established project with proven stability

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~4 days

Total

8

Last Release

2866d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/5f02504039b743db9582b25ed2d3551c106fa089d7db8d1921b9f791d28ce35b?d=identicon)[Sergey Dudka](/maintainers/Sergey%20Dudka)

---

Tags

yii2extension

### Embed Badge

![Health badge](/badges/crudschool-yii2-migration-generator/health.svg)

```
[![Health](https://phpackages.com/badges/crudschool-yii2-migration-generator/health.svg)](https://phpackages.com/packages/crudschool-yii2-migration-generator)
```

###  Alternatives

[craftcms/cms

Craft CMS

3.6k3.6M2.9k](/packages/craftcms-cms)[johnitvn/yii2-ajaxcrud

Gii CRUD template for Single Page Ajax Administration for yii2

97213.6k16](/packages/johnitvn-yii2-ajaxcrud)[dmstr/yii2-migrate-command

Console Migration Command with multiple paths/aliases support

31297.1k6](/packages/dmstr-yii2-migrate-command)[dmstr/yii2-db

Database extensions

19656.2k6](/packages/dmstr-yii2-db)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
