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

В Yii 2 миграции являются важной частью управления изменениями схемы базы данных. Миграции позволяют вам управлять версиями схемы базы данных и легко применять изменения в различных средах. В этой статье мы рассмотрим различные методы создания миграций с полями в Yii 2, а также приведем примеры кода.

Метод 1: использование метода createTable
Метод createTable— наиболее распространенный способ создания новой таблицы с полями в Yii 2. Вот пример:

use yii\db\Migration;
class m210309_000000_create_example_table extends Migration
{
    public function up()
    {
        $this->createTable('example', [
            'id' => $this->primaryKey(),
            'name' => $this->string()->notNull(),
            'age' => $this->integer(),
            'created_at' => $this->integer(),
            'updated_at' => $this->integer(),
        ]);
    }
    public function down()
    {
        $this->dropTable('example');
    }
}

Метод 2: использование метода addColumn.
Если вы хотите добавить поля в существующую таблицу, вы можете использовать метод addColumn. Вот пример:

use yii\db\Migration;
class m210309_000001_add_example_fields extends Migration
{
    public function up()
    {
        $this->addColumn('example', 'email', $this->string()->notNull());
        $this->addColumn('example', 'phone', $this->string());
    }
    public function down()
    {
        $this->dropColumn('example', 'email');
        $this->dropColumn('example', 'phone');
    }
}

Метод 3. Использование метода alterColumn
Метод alterColumnпозволяет изменять свойства существующего столбца. Вот пример:

use yii\db\Migration;
class m210309_000002_alter_example_column extends Migration
{
    public function up()
    {
        $this->alterColumn('example', 'age', $this->smallInteger()->defaultValue(18));
    }
    public function down()
    {
        $this->alterColumn('example', 'age', $this->integer());
    }
}

Метод 4: использование метода renameColumn
Если вам нужно переименовать столбец в таблице, вы можете использовать метод renameColumn. Вот пример:

use yii\db\Migration;
class m210309_000003_rename_example_column extends Migration
{
    public function up()
    {
        $this->renameColumn('example', 'age', 'new_age');
    }
    public function down()
    {
        $this->renameColumn('example', 'new_age', 'age');
    }
}

В этой статье мы рассмотрели несколько методов создания миграций с полями в Yii 2. Эти методы позволяют создавать новые таблицы, добавлять поля в существующие таблицы, изменять свойства столбцов и переименовывать столбцы. Используя миграции, вы можете легко управлять изменениями схемы базы данных и контролировать их версии в приложении Yii 2.