Yii2 Как сделать миграцию с составным индексом?

Для создания миграции с составным индексом в Yii2 вам потребуется использовать метод createTable внутри вашего класса миграции. Этот метод принимает вторым параметром массив колонок таблицы, а третьим параметром массив индексов. В массиве индексов вы можете определить составные индексы для нескольких колонок.

Допустим, у вас есть таблица users, и вы хотите создать индекс для полей first_name и last_name. Вот как выглядит код создания такой таблицы с составным индексом в классе миграции:

use yiidbMigration;

class m200101_000000_create_users_table extends Migration
{
    public function safeUp()
    {
        $this->createTable('users', [
            'id' => $this->primaryKey(),
            'first_name' => $this->string(255),
            'last_name' => $this->string(255),
            // Добавьте остальные необходимые колонки
        ], $this->tableOptions);

        // Создаем составной индекс для полей `first_name` и `last_name`
        $this->createIndex('idx-users-name', 'users', ['first_name', 'last_name']);
    }

    public function safeDown()
    {
        // Удаляем составной индекс
        $this->dropIndex('idx-users-name', 'users');

        $this->dropTable('users');
    }
}

Обратите внимание, что в примере выше мы создали составной индекс с именем idx-users-name, затем мы передали его в метод createIndex. Важно использовать уникальное имя для каждого индекса, чтобы его можно было отличить от других индексов в вашей таблице.

После создания миграции, запустите команду php yii migrate в командной строке, чтобы применить миграцию и создать таблицу с составным индексом.

Надеюсь, что это поможет вам создать миграцию с составным индексом в Yii2!