Appearance
Миграции БД
Создание миграции
shell
php7.4 tools/migrate -create -name название миграцииКласс миграции будет создан в директории migrations
Выполнение миграции
shell
php7.4 tools/migrate -applyНаписание миграции
Код выполнения миграции пишется внутри метода commit в созданном классе миграции
Создание экземпляра класса таблицы, в конструктор подается название таблицы (не важно новой или существующей). Если префикс таблиц проекта не указан в названии таблицы - он подставится автоматически при выполнении миграции.
php
$obTable = new appCplMigrationTable("table_name");Поля таблицы описываются методами column, при этом не обзятельно описывать все поля - те поля что отсуствуют - не изменятся.
Метод column принимает 5 аргументов:
- Название поля
- Тип
- Опционально длина,
null, если отсутствует (или бессмысленно) - Флаг
nullable - Значение по умолчанию
Метод возвращает класс поля, который имеет ряд встроенных методов:
setAutoIncrement- указание автоинкрементости поляsetIndex- указания что необходимо создать индекс для поляdelete- указание для удаления поля
php
$obTable = new appCplMigrationTable("cpl_migrations");
$obTable->column('id', 'int', 11, false)->setAutoIncrement(); //Указание автоинкрементости
$obTable->column('migration_class', 'varchar', 255, false, null);
$obTable->column('hash', 'varchar', 255, false, null);
$obTable->column('date', 'datetime', null, false, null)->setIndex(); //Необходимо создать индекс
$obTable->column('name', 'varchar', 255, false, null);
$obTable->column('status', 'int', 1, false,0);
$obTable->column('test', 'int', 1, false,0)->delete(); //Необходимо удалить поле
$obTable->save();