createTable( 'speaker', [ 'id' => $this->primaryKey(), 'sort' => $this->integer(), 'image_id' => $this->integer(), 'status' => $this->boolean(), ] ); $this->createTable( 'speaker_lang', [ 'speaker_id' => $this->integer(), 'language_id' => $this->integer(), 'name' => $this->string(), 'organization' => $this->text(), 'position' => $this->text(), ] ); $this->createIndex( 'spkr_idx', 'speaker_lang', [ 'speaker_id', 'language_id', ], true ); $this->addForeignKey('spkr_fk', 'speaker_lang', 'speaker_id', 'speaker', 'id', 'CASCADE', 'CASCADE'); $this->addForeignKey('lng_fk', 'speaker_lang', 'language_id', 'language', 'id', 'CASCADE', 'CASCADE'); } /** * {@inheritdoc} */ public function safeDown() { $this->dropForeignKey('lng_fk', 'speaker_lang'); $this->dropForeignKey('spkr_fk', 'speaker_lang'); $this->dropIndex( 'spkr_idx', 'speaker_lang' ); $this->dropTable('speaker_lang'); $this->dropTable('speaker'); } }