| @@ 12-54 (lines=43) @@ | ||
| 9 | * @author Agiel K. Saputra <[email protected]> |
|
| 10 | * @since 0.1.0 |
|
| 11 | */ |
|
| 12 | class m000000_000008_taxonomy extends \yii\db\Migration |
|
| 13 | { |
|
| 14 | /** |
|
| 15 | * @inheritdoc |
|
| 16 | */ |
|
| 17 | public function up() |
|
| 18 | { |
|
| 19 | $tableOptions = null; |
|
| 20 | ||
| 21 | if ($this->db->driverName === 'mysql') { |
|
| 22 | $tableOptions = 'CHARACTER SET utf8 COLLATE utf8_general_ci ENGINE=InnoDB'; |
|
| 23 | } |
|
| 24 | ||
| 25 | $this->createTable('{{%taxonomy}}', [ |
|
| 26 | 'id' => Schema::TYPE_PK, |
|
| 27 | 'name' => Schema::TYPE_STRING . '(200) NOT NULL', |
|
| 28 | 'slug' => Schema::TYPE_STRING . '(200) NOT NULL', |
|
| 29 | 'hierarchical' => Schema::TYPE_SMALLINT . '(1) NOT NULL DEFAULT 0', |
|
| 30 | 'singular_name' => Schema::TYPE_STRING . '(255) NOT NULL', |
|
| 31 | 'plural_name' => Schema::TYPE_STRING . '(255) NOT NULL', |
|
| 32 | 'menu_builder' => Schema::TYPE_SMALLINT . '(1) NOT NULL DEFAULT 0', |
|
| 33 | ], $tableOptions); |
|
| 34 | ||
| 35 | /** |
|
| 36 | * Add two taxonomies, that are category and tag |
|
| 37 | */ |
|
| 38 | $this->batchInsert( |
|
| 39 | '{{%taxonomy}}', |
|
| 40 | ['name', 'slug', 'hierarchical', 'singular_name', 'plural_name', 'menu_builder'], [ |
|
| 41 | ['category', 'category', '1', 'Category', 'Categories', 1], |
|
| 42 | ['tag', 'tag', '0', 'Tag', 'Tags', 0], |
|
| 43 | ] |
|
| 44 | ); |
|
| 45 | } |
|
| 46 | ||
| 47 | /** |
|
| 48 | * @inheritdoc |
|
| 49 | */ |
|
| 50 | public function down() |
|
| 51 | { |
|
| 52 | $this->dropTable('{{%taxonomy}}'); |
|
| 53 | } |
|
| 54 | } |
|
| 55 | ||
| @@ 11-48 (lines=38) @@ | ||
| 8 | * @author Agiel K. Saputra <[email protected]> |
|
| 9 | * @since 0.1.0 |
|
| 10 | */ |
|
| 11 | class m000000_000010_term extends \yii\db\Migration |
|
| 12 | { |
|
| 13 | /** |
|
| 14 | * @inheritdoc |
|
| 15 | */ |
|
| 16 | public function up() |
|
| 17 | { |
|
| 18 | $tableOptions = null; |
|
| 19 | ||
| 20 | if ($this->db->driverName === 'mysql') { |
|
| 21 | $tableOptions = 'CHARACTER SET utf8 COLLATE utf8_general_ci ENGINE=InnoDB'; |
|
| 22 | } |
|
| 23 | ||
| 24 | $this->createTable('{{%term}}', [ |
|
| 25 | 'id' => Schema::TYPE_PK, |
|
| 26 | 'taxonomy_id' => Schema::TYPE_INTEGER . '(11) NOT NULL', |
|
| 27 | 'name' => Schema::TYPE_STRING . '(200) NOT NULL', |
|
| 28 | 'slug' => Schema::TYPE_STRING . '(200) NOT NULL', |
|
| 29 | 'description' => Schema::TYPE_TEXT, |
|
| 30 | 'parent' => Schema::TYPE_INTEGER . '(11) DEFAULT 0', |
|
| 31 | 'count' => Schema::TYPE_INTEGER . '(11) DEFAULT 0', |
|
| 32 | 'FOREIGN KEY ([[taxonomy_id]]) REFERENCES {{%taxonomy}} ([[id]]) ON DELETE CASCADE ON UPDATE CASCADE', |
|
| 33 | ], $tableOptions); |
|
| 34 | ||
| 35 | $this->batchInsert('{{%term}}', ['taxonomy_id', 'name', 'slug', 'description', 'parent', 'count'], [ |
|
| 36 | ['1', 'Sample Category', 'sample-category', 'Hello there, this is example of category.', 0, '1'], |
|
| 37 | ['2', 'Sample Tag', 'sample-tag', 'Hello there, this is an example of tag.', 0, '1'], |
|
| 38 | ]); |
|
| 39 | } |
|
| 40 | ||
| 41 | /** |
|
| 42 | * @inheritdoc |
|
| 43 | */ |
|
| 44 | public function down() |
|
| 45 | { |
|
| 46 | $this->dropTable('{{%term}}'); |
|
| 47 | } |
|
| 48 | } |
|
| 49 | ||