[!] Yii2 Миграции
Primary tabs
Миграции - средства контролируемого изменения структуры БД, в частности в рамках Yii
Вывод списка миграций доступных миграций
// Применённые миграции yii migrate/history # покажет последние 10 применённых миграций yii migrate/history 5 # покажет последние 5 применённых миграций yii migrate/history all # покажет все применённые миграции // Новые (ещё Не применённые) миграции yii migrate/new # покажет перые 10 новых миграций yii migrate/new 5 # покажет перые 5 новых миграций yii migrate/new all # покажет все новые миграции
Создание миграции
В корне проекта выполняем консольную команду:
./yii migrate/create <migration_name>
Это создаст файл миграции с ключом (дополнит немного указанное вами имя) в:
@app/migrations
Далее вам придётся этот файл немного доработать (отредактировать), чтобы там было два метода --
- для наката миграции
- и для её отката.
Вот пример миграции для монгоДБ -- главное что есть два метода:
class m170421_101724_add__index_to_results extends \yii\mongodb\Migration { public function up() // изменит БД { $this->createIndex('auto_ical.result', 'diagnostic_reports.pa_id', ['sparse' => true]); } public function down() // откатит изменения назад { $this->dropIndex('auto_ical.result', 'diagnostic_reports.pa_id'); } }
Применение миграции
Применить все неприменённые миграции можно так:
yii migrate
А также можно "мигрировать", используя команды:
# используя временную метку определяющую миграцию yii migrate/to 150101_185401 # используя строку, которая может быть получена путем использования функции strtotime() yii migrate/to "2015-01-01 18:54:01" # используя полное имя миграции (файла и класса) yii migrate/to m150101_185401_create_news_table # используя временную метку UNIX yii migrate/to 1392853618
Откат Миграций -- отмена
Чтобы отменить (откатить) одну или несколько миграций, которые применялись ранее, нужно запустить следующую команду:
# отменяет самую последнюю применённую миграцию yii migrate/down # отменяет 3 последних применённых миграции yii migrate/down 3
Примечание: Не все миграции являются обратимыми. При попытке отката таких миграций произойдёт ошибка и остановится весь процесс отката
Источники (что почитать)
Миграции хорошо описаны здесь: https://yiiframework.com.ua/ru/doc/guide...
- Log in to post comments
- 4596 reads