Как добавить новый столбец с миграциями Yii 2 на определенную позицию в таблице?

предположим, у меня есть эта структура таблицы:

+----+------------+-----------+---------+------+---------+---------+---------------------+---------------------+
| id | first_name | last_name | country | city | address | zipcode | created             | updated             |
+----+------------+-----------+---------+------+---------+---------+---------------------+---------------------+
|  1 | Duvdevan   | Duvdevani | NULL    | NULL | NULL    | NULL    | 2016-02-12 15:37:19 | 2016-02-12 16:35:57 |
+----+------------+-----------+---------+------+---------+---------+---------------------+---------------------+

и я хочу добавить новый столбец под названием email, сразу после id и перед first_name, С помощью addColumn метод на Migration класса.

единственное, что я могу сделать в моей новой миграции:

public function up()
{
    $this->addColumn('contacts', 'email', $this->string(64));
}

и он поставил его в конце стола, после

3 ответов


ее решили. Если кто-то сталкивается с той же проблемой, это решение я использовал:

public function up()
{
    $this->addColumn('contacts', 'email', 'VARCHAR(64) AFTER id');
}

EDIT: версии Yii 2.0.8 вы также можете использовать этот цепной синтаксис:

$this->addColumn('contacts', 'email', $this->string(64)->after('id'));

public function up()
{
    $this->addColumn('contacts', 'email', $this->string(64)->after('id'));
}

вы можете использовать команду миграции для этого, как показано ниже :

php yii migrate/create add_email_column_to_contacts_table --fields="email:string(64):after('id')"