PHPackages                             skobka/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. skobka/yii2-migration-generator

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

skobka/yii2-migration-generator
===============================

Generates migrations from Annotations

v2.0.2(9y ago)71.1k3[1 issues](https://github.com/Doka-NT/yii2-migration-generator/issues)MITPHP

Since Apr 15Pushed 8y ago2 watchersCompare

[ Source](https://github.com/Doka-NT/yii2-migration-generator)[ Packagist](https://packagist.org/packages/skobka/yii2-migration-generator)[ RSS](/packages/skobka-yii2-migration-generator/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (4)Dependencies (3)Versions (6)Used By (0)

yii2-migration-generator
========================

[](#yii2-migration-generator)

Generates migrations from Annotations of Model or ActiveRecords classes (not only). You simple write classes as usual and then asking generator to create migration file from code.

**NOTE!** Works only with yii2 console. This is **NOT Gii extension**

\##Installation

```
php composer.phar require --dev skobka/yii2-migration-generator "*"
```

Or add it manualy to composer.json

```
{
  "require-dev": {
    "skobka/yii2-migration-generator": "*"
  }
}
```

Next step is to enable generation from Yii2 console. Add following code in console/config/main.php

```
use skobka\yii2\migrationGenerator\Controllers\MigrationGeneratorController;

return [
   //...
    'controllerMap' => [
        'migration' => [
            'class' => MigrationGeneratorController::class,
        ],
    ],
   //...
]
```

\##Usage This package provide following annotations:

- @Superclass(active=true)
- @Table(name="")
- @Column(name="", type="", typeArgs={}, extra="")

\###@Superclass Indicate that annotation from current class must be included in child class. When parser goes throught classes it will skip class without @Superclass or @Table annotation. Parser will not finds parents of such class. If you want to skip current @Superclass from parsing, simple set option *active* to *false*

\###@Table This annotations tells that current class define a table. Table name takes from property name:

```
@Table(name="my_first_table")
// You can use @Table() without parameters, then MyModel::tableName() will be used

```

\###@Column This annotation defined a table column. You must specify the name and type of column.

**NOTE!** Column types must be a method names of yii\\db\\SchemaBuilderTrait Available properties:

- **name** - name of column
- **type** - column type
- **typeArgs** - an array of type arguments, for example: @Column(type="decimal", typeArgs={10,2})
- **extra** - string wich will be append to then end of column definition

After all run

```
php yii migration/generate common/models/mymodel
```

\##Examples

```
/**
 * @Superclass()
 * @Column(name="id", type="primaryKey")
 * @Column(name="uid", type="integer", notNull=false)
 *
 * @property int id
 * @property int uid
 */
class BaseModel
{

}
```

```
