VARCHAR в Yii2. Создаем поле этого типа через механизм миграций

Эта статья из цикла по типам полей в БД через миграции Yii2. Список статей из этого цикла:

  1. ENUM
  2. INTEGER
  3. VARCHAR
  4. DATETIME
  5. TIMESTAMP
  6. FLOAT

Добавление поля типа VARCHAR и уставновление для него аттрибутов

Не будет уменьшением сказать, что почти большинство типов полей в таблицах — varchar. Для того чтобы добавить поле этого типа в базу используя миграции, достаточно прописать следующий код:

        $this->createTable('tableName', [
            ...
            'username' => $this->string(),
            ...
        ]);

По-умолчанию будет создано поле varchar длиной в 255 символов. Если же нам надо другое значение, достаточно его указать, как аргумент метода string()

        $this->createTable('tableName', [
            ...
            'username' => $this->string(50),
            ...
        ]);

Значение этого поля по-умолчанию будет NULL. Чтобы сделать это поле не NULL, пропишем следующий код:

        $this->createTable('tableName', [
            ...
            'username' => $this->string(50)->notNull(),
            ...
        ]);

Также, мы можем указать какое-то свое значение по-умолчанию:

        $this->createTable('tableName', [
            ...
            'username' => $this->string(50)->notNull()->defaultValue('My custom string'),
            ...
        ]);