portal.mkgtu.ru/common/db/views/createJunctionMigration.php

75 lines
1.6 KiB
PHP
Executable File

<?php
echo "<?php\n";
if (!empty($namespace)) {
echo "\nnamespace {$namespace};\n";
}
?>
use common\components\Migration\SafeMigration;
/**
* Handles the creation of table `<?= $table ?>` which is a junction between
* table `<?= $field_first ?>` and table `<?= $field_second ?>`.
*/
class <?= $className ?> extends SafeMigration
{
/**
* {@inheritdoc}
*/
public function safeUp()
{
$this->createTable('<?= $table ?>', [
'<?= $field_first ?>_id' => $this->integer(),
'<?= $field_second ?>_id' => $this->integer(),
'PRIMARY KEY(<?= $field_first ?>_id, <?= $field_second ?>_id)',
]);
$this->createIndex(
'idx-<?= $table . '-' . $field_first ?>_id',
'<?= $table ?>',
'<?= $field_first ?>_id'
);
$this->createIndex(
'idx-<?= $table . '-' . $field_second ?>_id',
'<?= $table ?>',
'<?= $field_second ?>_id'
);
$this->addForeignKey(
'fk-<?= $table . '-' . $field_first ?>_id',
'<?= $table ?>',
'<?= $field_first ?>_id',
'<?= $field_first ?>',
'id',
'CASCADE'
);
$this->addForeignKey(
'fk-<?= $table . '-' . $field_second ?>_id',
'<?= $table ?>',
'<?= $field_second ?>_id',
'<?= $field_second ?>',
'id',
'CASCADE'
);
}
/**
* {@inheritdoc}
*/
public function safeDown()
{
$this->dropTable('<?= $table ?>');
}
}