Seditio Source
Root |
./othercms/croogo-4.0.7/vendor/croogo/croogo/Taxonomy/config/Migrations/20160807105245_TaxonomyInitialMigration.php
<?php

use Migrations\AbstractMigration;

class
TaxonomyInitialMigration extends AbstractMigration
{
    public function
up()
    {
       
$this->table('terms')
            ->
addColumn('title', 'string', [
               
'default' => null,
               
'limit' => 255,
               
'null' => false,
            ])
            ->
addColumn('slug', 'string', [
               
'default' => null,
               
'limit' => 255,
               
'null' => false,
            ])
            ->
addColumn('description', 'text', [
               
'default' => null,
               
'limit' => null,
               
'null' => true,
            ])
            ->
addColumn('params', 'text', [
               
'default' => null,
               
'limit' => null,
               
'null' => true,
            ])
            ->
addTimestamps('created', 'updated')
            ->
addColumn('created_by', 'integer', [
               
'default' => null,
               
'limit' => 20,
               
'null' => false,
            ])
            ->
addColumn('updated_by', 'integer', [
               
'default' => null,
               
'limit' => 20,
               
'null' => true,
            ])
            ->
addIndex(
                [
                   
'slug',
                ],
                [
                   
'unique' => true,
                   
'limit' => 190,
                ]
            )
            ->
create();

       
$this->table('vocabularies')
            ->
addColumn('title', 'string', [
               
'default' => null,
               
'limit' => 255,
               
'null' => false,
            ])
            ->
addColumn('alias', 'string', [
               
'default' => null,
               
'limit' => 255,
               
'null' => false,
            ])
            ->
addColumn('description', 'text', [
               
'default' => null,
               
'limit' => null,
               
'null' => true,
            ])
            ->
addColumn('required', 'boolean', [
               
'default' => false,
               
'limit' => null,
               
'null' => false,
            ])
            ->
addColumn('multiple', 'boolean', [
               
'default' => false,
               
'limit' => null,
               
'null' => false,
            ])
            ->
addColumn('tags', 'boolean', [
               
'default' => false,
               
'limit' => null,
               
'null' => false,
            ])
            ->
addColumn('plugin', 'string', [
               
'default' => null,
               
'limit' => 255,
               
'null' => true,
            ])
            ->
addColumn('weight', 'integer', [
               
'default' => null,
               
'limit' => 11,
               
'null' => true,
            ])
            ->
addTimestamps('created', 'updated')
            ->
addColumn('created_by', 'integer', [
               
'default' => null,
               
'limit' => 20,
               
'null' => false,
            ])
            ->
addColumn('updated_by', 'integer', [
               
'default' => null,
               
'limit' => 20,
               
'null' => true,
            ])
            ->
addIndex(
                [
                   
'alias',
                ],
                [
                   
'unique' => true,
                   
'limit' => 190,
                ]
            )
            ->
create();

       
$this->table('taxonomies')
            ->
addColumn('parent_id', 'integer', [
               
'default' => null,
               
'limit' => 20,
               
'null' => true,
            ])
            ->
addColumn('term_id', 'integer', [
               
'default' => null,
               
'limit' => 10,
               
'null' => false,
            ])
            ->
addColumn('vocabulary_id', 'integer', [
               
'default' => null,
               
'limit' => 10,
               
'null' => false,
            ])
            ->
addColumn('lft', 'integer', [
               
'default' => null,
               
'limit' => 11,
               
'null' => true,
            ])
            ->
addColumn('rght', 'integer', [
               
'default' => null,
               
'limit' => 11,
               
'null' => true,
            ])
            ->
addForeignKey('term_id', 'terms', ['id'], [
               
'constraint' => 'fk_taxonomies2terms',
               
'delete' => 'RESTRICT',
            ])
            ->
addForeignKey('vocabulary_id', 'vocabularies', ['id'], [
               
'constraint' => 'fk_taxonomies2vocabularies',
               
'delete' => 'RESTRICT',
            ])
            ->
create();

       
$this->table('types')
            ->
addColumn('title', 'string', [
               
'default' => null,
               
'limit' => 255,
               
'null' => false,
            ])
            ->
addColumn('alias', 'string', [
               
'default' => null,
               
'limit' => 255,
               
'null' => false,
            ])
            ->
addColumn('description', 'text', [
               
'default' => null,
               
'limit' => null,
               
'null' => true,
            ])
            ->
addColumn('format_show_author', 'boolean', [
               
'default' => true,
               
'limit' => null,
               
'null' => false,
            ])
            ->
addColumn('format_show_date', 'boolean', [
               
'default' => true,
               
'limit' => null,
               
'null' => false,
            ])
            ->
addColumn('format_use_wysiwyg', 'boolean', [
               
'default' => true,
               
'limit' => null,
               
'null' => false,
            ])
            ->
addColumn('comment_status', 'integer', [
               
'default' => 1,
               
'limit' => 1,
               
'null' => false,
            ])
            ->
addColumn('comment_approve', 'boolean', [
               
'default' => true,
               
'limit' => null,
               
'null' => false,
            ])
            ->
addColumn('comment_spam_protection', 'boolean', [
               
'default' => false,
               
'limit' => null,
               
'null' => false,
            ])
            ->
addColumn('comment_captcha', 'boolean', [
               
'default' => false,
               
'limit' => null,
               
'null' => false,
            ])
            ->
addColumn('params', 'text', [
               
'default' => null,
               
'limit' => null,
               
'null' => true,
            ])
            ->
addColumn('plugin', 'string', [
               
'default' => null,
               
'limit' => 255,
               
'null' => true,
            ])
            ->
addTimestamps('created', 'updated')
            ->
addColumn('created_by', 'integer', [
               
'default' => null,
               
'limit' => 20,
               
'null' => false,
            ])
            ->
addColumn('updated_by', 'integer', [
               
'default' => null,
               
'limit' => 20,
               
'null' => true,
            ])
            ->
addIndex(
                [
                   
'alias',
                ],
                [
                   
'unique' => true,
                   
'limit' => 190,
                ]
            )
            ->
create();

       
$this->table('types_vocabularies')
            ->
addColumn('type_id', 'integer', [
               
'default' => null,
               
'limit' => 20,
               
'null' => false,
            ])
            ->
addColumn('vocabulary_id', 'integer', [
               
'default' => null,
               
'limit' => 20,
               
'null' => false,
            ])
            ->
addColumn('weight', 'integer', [
               
'default' => null,
               
'limit' => null,
               
'null' => true,
            ])
            ->
addIndex(
                [
                   
'type_id', 'vocabulary_id',
                ],
                [
'unique' => true]
            )
            ->
create();

       
$this->table('model_taxonomies')
            ->
addColumn('model', 'string', [
               
'default' => null,
               
'limit' => 50,
               
'null' => false,
            ])
            ->
addColumn('foreign_key', 'integer', [
               
'default' => null,
               
'limit' => 20,
               
'null' => false,
            ])
            ->
addColumn('taxonomy_id', 'integer', [
               
'default' => null,
               
'limit' => 20,
               
'null' => false,
            ])
            ->
addForeignKey('taxonomy_id', 'taxonomies', ['id'], [
               
'constraint' => 'fk_model_taxonomies2taxonomies',
               
'update' => 'CASCADE',
               
'delete' => 'CASCADE',
            ])
            ->
addIndex(
                [
                   
'model', 'foreign_key', 'taxonomy_id',
                ],
                [
'unique' => true]
            )
            ->
create();
    }

    public function
down()
    {
       
$this->table('model_taxonomies')->drop()->save();
       
$this->table('taxonomies')->drop()->save();
       
$this->table('terms')->drop()->save();
       
$this->table('types')->drop()->save();
       
$this->table('vocabularies')->drop()->save();
       
$this->table('types_vocabularies')->drop()->save();
    }
}