m180507_123248_create_event_lang_table.php
1.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php
use yii\db\Migration;
/**
 * Handles the creation of table `event_lang`.
 */
class m180507_123248_create_event_lang_table extends Migration
{
    /**
     * {@inheritdoc}
     */
    public function safeUp()
    {
        $this->createTable('event_lang', [
            'id' => $this->primaryKey(),
            'event_id' => $this->integer()
                                      ->notNull(),
            'language_id'     => $this->integer()
                                      ->notNull(),
            'title'           => $this->string(255),
            'body'            => $this->text(),
            'body_preview'    => $this->text(),
            'alias_id'        => $this->integer(),
        ]);
    
        $this->createIndex(
            'event_lang_uk',
            'event_lang',
            [
                'event_id',
                'language_id',
            ],
            true
        );
    
        $this->createIndex(
            'event_alias_uk',
            'event_lang',
            'alias_id',
            true
        );
    
        /**
         * Add foreign keys in blog_articles and language tables
         */
        $this->addForeignKey(
            'event_fk',
            'event_lang',
            'event_id',
            'event',
            'id',
            'CASCADE',
            'CASCADE'
        );
    
        $this->addForeignKey(
            'event_lang_fk',
            'event_lang',
            'language_id',
            'language',
            'id',
            'RESTRICT',
            'CASCADE'
        );
    }
    /**
     * {@inheritdoc}
     */
    public function safeDown()
    {
        $this->dropForeignKey('event_lang_fk', 'event_lang');
        $this->dropForeignKey('event_fk', 'event_lang');
        $this->dropIndex('event_alias_uk', 'event_lang');
        $this->dropIndex('event_lang_uk', 'event_lang');
        $this->dropTable('event_lang');
    }
} 
