| 
<?php/**
 * This view is used by console/controllers/MigrateController.php
 * The following variables are available in this view:
 */
 /** @var $migrationName string the new migration class name
 *  @var array                                  $tableList
 *  @var array                                  $tableRelations
 *  @var insolita\migrik\gii\StructureGenerator $generator
 *  @var array $fkProps
 *
 */
 
 echo "<?php\n";
 ?>
 
 use yii\db\Schema;
 use yii\db\Migration;
 
 class <?= $migrationName ?> extends Migration
 {
 
 public function init()
 {
 $this->db = '<?=$generator->db?>';
 parent::init();
 }
 
 public function safeUp()
 {
 $tableOptions = '<?=$generator->tableOptions?>';
 <?php foreach ($tableList as $tableData) :?>
 
 $this->createTable('<?= ($generator->usePrefix)?$tableData['alias']:$tableData['name'] ?>',[
 <?php foreach ($tableData['columns'] as $name => $data) :?>
 '<?=$name?>'=> <?=$data;?>,
 <?php endforeach;?>
 ], $tableOptions);
 
 <?php if (!empty($tableData['indexes']) && is_array($tableData['indexes'])) :?>
 <?php foreach ($tableData['indexes'] as $name => $data) :?>
 <?php if ($name!='PRIMARY') :?>
 $this->createIndex('<?=$name?>','<?=$tableData['alias']?>',['<?=implode("','", array_values($data['cols']))?>'],<?=$data['isuniq']?'true':'false'?>);
 <?php endif;?>
 <?php endforeach;?>
 <?php endif?>
 <?php if (!empty($tableData['tablePk'])) : ?>
 $this->addPrimaryKey('pk_on_<?=$tableData['name']?>','<?=$tableData['alias']?>',['<?=implode("','",$tableData['tablePk'])?>']);
 <?php endif?>
 <?php endforeach;?>
 <?php if (!empty($tableRelations) && is_array($tableRelations)) :?>
 <?php foreach ($tableRelations as $table) :?>
 <?php foreach ($table['fKeys'] as $i => $rel) :?>
 $this->addForeignKey(
 'fk_<?=$table['tableName']?>_<?=$rel['pk']?>',
 '<?=$table['tableAlias']?>', '<?=$rel['pk']?>',
 '<?=$rel['ftable']?>', '<?=$rel['fk']?>',
 '<?=$fkProps['onDelete']?>', '<?=$fkProps['onUpdate']?>'
 );
 <?php endforeach;?>
 <?php endforeach;?>
 <?php endif?>
 }
 
 public function safeDown()
 {
 <?php if (!empty($tableRelations) && is_array($tableRelations)) :?>
 <?php foreach ($tableRelations as $table) :?>
 <?php foreach ($table['fKeys'] as $i => $rel) :?>
 $this->dropForeignKey('fk_<?=$table['tableName']?>_<?=$rel['pk']?>', '<?=$table['tableAlias']?>');
 <?php endforeach;?>
 <?php endforeach;?>
 <?php endif?>
 <?php foreach ($tableList as $tableData) :?>
 <?php if (!empty($tableData['tablePk'])) : ?>
 $this->dropPrimaryKey('pk_on_<?=$tableData['name']?>','<?=$tableData['alias']?>');
 <?php endif?>
 $this->dropTable('<?= ($generator->usePrefix)?$tableData['alias']:$tableData['name']?>');
 <?php endforeach;?>
 }
 }
 
 |