createTable('{{%posts}}', [ 'id' => $this->primaryKey(), 'category_id' => $this->integer()->notNull(), 'published_at' => $this->integer()->unsigned()->notNull(), 'created_at' => $this->integer()->unsigned()->notNull(), 'updated_at' => $this->integer()->unsigned()->notNull(), 'title' => $this->string()->notNull(), 'description' => $this->text(), 'content' => 'MEDIUMTEXT', 'image' => $this->string(), 'video' => $this->string(), 'status' => $this->integer()->notNull(), 'meta_json' => 'TEXT NOT NULL', 'comments_count' => $this->integer()->notNull()->defaultValue(0), 'type_id' => $this->integer()->notNull(), 'views' => $this->integer()->notNull()->defaultValue(0), 'slug' => $this->string()->notNull(), ], $tableOptions); $this->createIndex('{{%idx-posts-category_id}}', '{{%posts}}', 'category_id'); $this->createIndex('{{%idx-posts-type_id}}', '{{%posts}}', 'type_id'); $this->createIndex('{{%idx-posts-slug}}', '{{%posts}}', 'slug', true); $this->addForeignKey('{{%fk-posts-category_id}}', '{{%posts}}', 'category_id', '{{%post_categories}}', 'id'); $this->addForeignKey('{{%fk-posts-type_id_id}}', '{{%posts}}', 'type_id', '{{%post_types}}', 'id'); } public function down() { $this->dropTable('{{%posts}}'); } }