File: /home/aliazzsr/api.crm.vqode.com/migrations/m180427_100144_263Priorities.php
<?php
use yii\db\Migration;
use app\components\BaseModel;
use yii\helpers\ArrayHelper;
use app\models\core\Priority;
use app\models\enums\PriorityEnum;
use app\models\core\Project;
/**
* Class m180427_100144_263Priorities
*/
class m180427_100144_263Priorities extends Migration
{
/**
* {@inheritdoc}
*/
public function safeUp()
{
$columns = [
'id' => $this->primaryKey(),
'name' => $this->string()->notNull()->defaultValue(''),
'color' => $this->string()->notNull()->defaultValue('black'),
'description' => $this->string()->notNull()->defaultValue(''),
];
$this->createTable(Priority::tableName(), $this->addModifiers($columns));
$this->batchInsert(Priority::tableName(), ['id', 'name', 'color'], [
[PriorityEnum::HIGH, PriorityEnum::getLabel(PriorityEnum::HIGH), 'E64C66'],
[PriorityEnum::MEDIUM, PriorityEnum::getLabel(PriorityEnum::MEDIUM), 'FFAB00'],
[PriorityEnum::LOW, PriorityEnum::getLabel(PriorityEnum::LOW), '97B3CE'],
]);
$this->addColumn(Project::tableName(), 'priority_id', $this->integer()->defaultValue(null));
}
/**
* {@inheritdoc}
*/
public function safeDown()
{
$this->dropColumn(Project::tableName(), 'priority_id');
$this->dropTable(Priority::tableName());
}
protected function addModifiers($columns)
{
$modifiers = [
BaseModel::CreatedAt_Attribute => $this->timestamp()->defaultValue(null)
->comment('timestamp record created'),
BaseModel::UpdatedAt_Attribute => $this->timestamp()->defaultValue(null)
->comment('timestamp record last time updated'),
BaseModel::CreatedId_Attribute => $this->integer()->defaultValue(null)
->defaultValue(0)->comment('user created the record'),
BaseModel::UpdatedId_Attribute => $this->integer()->defaultValue(null)
->defaultValue(0)->comment('user updated the record'),
];
return ArrayHelper::merge($columns, $modifiers);
}
}