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'); } }