Основные возможности:
Упрощено создание внешних ключей, имена ключей генерируются автоматически и можно создавать ключи через createTable и addColumn
Код: Выделить всё
$this->createTable('{{%user}}', [
'id' => $this->primaryKey(),
'company_id' => $this->foreignKey('{{%company}}')
]);
$this->addColumn('{{%user}}', 'company_id', $this->foreignKey('{{%company}}'));
$this->alterColumn('{{%user}}', 'company_id', $this->foreignKey('{{%company}}'));
Код: Выделить всё
$this->dropForeignKeyByColumn('{{%user}}', 'company_id');
Код: Выделить всё
public function newTables()
{
return [
'{{%logs}}' => [
'data' => $this->string(),
],
'{{%user}}' => [
'id' => $this->primaryKey(),
'login' => $this->string()
],
];
}
public function safeUp()
{
$this->upNewTables(); // созданим таблицы, которые указали в newTables
}
public function safeUp()
{
$this->downNewTables(); // удалим эти таблицы в обратном порядке
}