NOTE : Use 2.x versions for yii <=2.0.13
The preferred way to install this extension is through composer.
Either run
composer require --dev --prefer-dist insolita/yii2-migration-generator:~3.1
or add
"insolita/yii2-migration-generator": "~3.1"
to the require-dev section of your composer.json
file.
Just install, go to gii and use (By default composer bootstrap hook)
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
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{
Copy default templates from folders
vendor/insolita/yii2-migration-generator/gii/default_structure //schema migrations
vendor/insolita/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' => \insolita\migrik\gii\StructureGenerator::class,
'templates' => [
'custom' => '@backend/gii/templates/migrator_schema',
],
],
'migrikdata' => [
'class' => \insolita\migrik\gii\DataGenerator::class,
'templates' => [
'custom' => '@backend/gii/templates/migrator_data',
],
],
],
];
in bootsrap your apps add injection
\Yii::$container->set(IMigrationTableResolver::class, YourTableResolver::class);
20.12.2018 - 3.1 improve postgres jsonb support; check on latest yii2 version
15.08.2018 - 3.0 version release; For yii >=2.0.14; add tinyInteger column support
29.04.2017 - 2.3 version release; Fix common bugs; seprate postgresql resolver for suppor arrays (one dimensional only) and json columns; fix view files;
03.02.2017 - 2.2.9 version release
22.12.2016 - 2.2.7 version release
17.12.2016 - 2.2.6 version release
20.08.2016 - 2.2 version release
15.08.2016 - 2.1 version release
13.08.2016 - 2.0 version release with new ability
Comments