<?php
use Migrations\AbstractMigration;
class MenusInitialMigration extends AbstractMigration
{
public function up()
{
$this->table('menus')
->addColumn('title', 'string', [
'default' => null,
'limit' => 255,
'null' => false,
])
->addColumn('alias', 'string', [
'default' => null,
'limit' => 255,
'null' => false,
])
->addColumn('class', 'string', [
'default' => null,
'limit' => 255,
'null' => false,
])
->addColumn('description', 'text', [
'default' => null,
'limit' => null,
'null' => true,
])
->addColumn('status', 'integer', [
'default' => null,
'limit' => 1,
'null' => true,
])
->addColumn('weight', 'integer', [
'default' => null,
'limit' => 11,
'null' => true,
])
->addColumn('link_count', 'integer', [
'default' => 0,
'limit' => 11,
'null' => false,
])
->addColumn('params', 'text', [
'default' => null,
'limit' => null,
'null' => true,
])
->addColumn('publish_start', 'datetime', [
'default' => null,
'limit' => null,
'null' => true,
])
->addColumn('publish_end', 'datetime', [
'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(
[
'alias',
],
[
'unique' => true,
'limit' => 190,
]
)
->create();
$this->table('links')
->addColumn('parent_id', 'integer', [
'default' => null,
'limit' => 20,
'null' => true,
])
->addColumn('menu_id', 'integer', [
'default' => null,
'limit' => 20,
'null' => false,
])
->addColumn('title', 'string', [
'default' => null,
'limit' => 255,
'null' => false,
])
->addColumn('class', 'string', [
'default' => null,
'limit' => 255,
'null' => true,
])
->addColumn('description', 'text', [
'default' => null,
'limit' => null,
'null' => true,
])
->addColumn('link', 'string', [
'default' => null,
'limit' => 255,
'null' => false,
])
->addColumn('target', 'string', [
'default' => null,
'limit' => 255,
'null' => true,
])
->addColumn('rel', 'string', [
'default' => null,
'limit' => 255,
'null' => true,
])
->addColumn('status', 'integer', [
'default' => null,
'limit' => 1,
'null' => true,
])
->addColumn('lft', 'integer', [
'default' => null,
'limit' => 11,
'null' => true,
])
->addColumn('rght', 'integer', [
'default' => null,
'limit' => 11,
'null' => true,
])
->addColumn('visibility_roles', 'text', [
'default' => null,
'limit' => null,
'null' => true,
])
->addColumn('params', 'text', [
'default' => null,
'limit' => null,
'null' => true,
])
->addColumn('publish_start', 'datetime', [
'default' => null,
'limit' => null,
'null' => true,
])
->addColumn('publish_end', 'datetime', [
'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,
])
->addForeignKey('menu_id', 'menus', ['id'], [
'constraint' => 'fk_links2menus',
'delete' => 'RESTRICT',
])
->create();
}
public function down()
{
$this->table('links')->drop()->save();
$this->table('menus')->drop()->save();
}
}