m211118_133144_create_tile_lang_table.php 2.38 KB
<?php

use yii\db\Migration;

/**
 * Handles the creation of table `tile_lang`.
 */
class m211118_133144_create_tile_lang_table extends Migration
{
    /**
     * @inheritdoc
     */
    public function up()
    {
        $this->createTable('tile_lang', [
            'tile_id' => $this->integer()->notNull(),
            'language_id' => $this->smallInteger()->notNull(),
            'link' => $this->string(255),
            'title' => $this->string(255),
        ]);
        // creates index for column `tile_id`
        $this->createIndex(
            'idx-tile_lang-tile_id',
            'tile_lang',
            'tile_id'
        );
    
        // add foreign key for table `object`
        $this->addForeignKey(
            'fk-tile_lang-tile_id',
            'tile_lang',
            'tile_id',
            'tile',
            'id',
            'CASCADE'
        );
    
        // creates index for column `language_id`
        $this->createIndex(
            'idx-tile_lang-language_id',
            'tile_lang',
            'language_id'
        );
    
        // add foreign key for table `language`
        $this->addForeignKey(
            'fk-tile_lang-language_id',
            'tile_lang',
            'language_id',
            'language',
            'id',
            'CASCADE'
        );
        // add double primary key
        $this->addPrimaryKey(
            "pk-tile_lang-tile_id-language_id",
            "tile_lang",
            [
                "tile_id",
                "language_id",
            ]
        );
    }

    /**
     * @inheritdoc
     */
    public function down()
    {
        // drop double primary key
        $this->dropPrimaryKey(
            "pk-tile_lang-tile_id-language_id",
            "tile_lang"
        );
    
        // drops foreign key for table `tile`
        $this->dropForeignKey(
            'fk-tile_lang-tile_id',
            'tile_lang'
        );
    
        // drops index for column `tile_id`
        $this->dropIndex(
            'idx-tile_lang-tile_id',
            'tile_lang'
        );
    
        // drops foreign key for table `language`
        $this->dropForeignKey(
            'fk-tile_lang-language_id',
            'tile_lang'
        );
    
        // drops index for column `language_id`
        $this->dropIndex(
            'idx-tile_lang-language_id',
            'tile_lang'
        );
        $this->dropTable('tile_lang');
    }
}