Let's say I have this table structure:
+----+------------+-----------+---------+------+---------+---------+---------------------+---------------------+
| 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 |
+----+------------+-----------+---------+------+---------+---------+---------------------+---------------------+
And I want to add a new column called email
, just after id
and before first_name
, using the addColumn
method of the Migration
class.
Only thing I can do in my new migration is:
public function up()
{
$this->addColumn('contacts', 'email', $this->string(64));
}
And it will put it at the end of the table, after updated
field.
How can I add a column at a specific position within my table, so this SQL query could be respected:
ALTER TABLE contacts ADD email VARCHAR(64) AFTER id
Solved it. If anyone faces the same issue, this is the solution I used:
public function up()
{
$this->addColumn('contacts', 'email', 'VARCHAR(64) AFTER id');
}
EDIT: From version Yii 2.0.8 you can use this chained syntax as well:
$this->addColumn('contacts', 'email', $this->string(64)->after('id'));