m170405_000010_variant_lang.php 2.37 KB
<?php
    
    use yii\db\Migration;
    
    class m170405_000010_variant_lang extends Migration
    {
        public function safeUp()
        {
            $this->createTable(
                'variant_lang',
                [
                    'variant_id'  => $this->integer(32)
                                          ->notNull(),
                    'language_id' => $this->integer(32)
                                          ->notNull(),
                    'title'       => $this->string(255)
                                          ->notNull(),
                    'alias_id'    => $this->integer(),
                    'description' => $this->text(),
                ]
            );
            $this->createIndex('variant_lang_alias_id', 'variant_lang', 'alias_id', true);
            $this->addPrimaryKey(
                'variant_lang_pk',
                'variant_lang',
                [
                    'variant_id',
                    'language_id',
                ]
            );
            $this->addForeignKey(
                'variant_lang_variant_id_to_variant_fk',
                'variant_lang',
                'variant_id',
                'variant',
                'id',
                'CASCADE',
                'CASCADE'
            );
            $this->addForeignKey(
                'variant_lang_language_id_to_language_fk',
                'variant_lang',
                'language_id',
                'language',
                'id',
                'RESTRICT',
                'CASCADE'
            );
            $this->addForeignKey(
                'variant_lang_alias_id_to_alias_fk',
                'variant_lang',
                'alias_id',
                'alias',
                'id',
                'SET NULL',
                'CASCADE'
            );
        }
        
        public function safeDown()
        {
            $this->dropForeignKey(
                'variant_lang_alias_id_to_alias_fk',
                'variant_lang'
            );
            $this->dropForeignKey(
                'variant_lang_language_id_to_language_fk',
                'variant_lang'
            );
            $this->dropForeignKey(
                'variant_lang_variant_id_to_variant_fk',
                'variant_lang'
            );
            $this->dropIndex('variant_lang_alias_id', 'variant_lang');
            $this->dropTable('variant_lang');
        }
    }