Для создания миграции с составным индексом в 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!