Класс yii\console\controllers\MigrateController
| Наследование | yii\console\controllers\MigrateController » yii\console\controllers\BaseMigrateController » yii\console\Controller » yii\base\Controller » yii\base\Component » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable, yii\base\ViewContextInterface |
| Доступно с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/console/controllers/MigrateController.php |
Управляет миграциями приложения.
Миграция представляет собой набор постоянных изменений в среде приложения, которые используются разными разработчиками. Например, в приложении, работающем с базой данных, миграция может относиться к набору изменений в базе данных, таких как создание новой таблицы или добавление нового столбца в таблицу.
Эта команда предоставляет поддержку отслеживания истории миграций, обновления или скачивания с миграциями и создания новых шаблонов миграций.
История миграций хранится в таблице базы данных с именем $migrationTable. Таблица будет автоматически создана при первом выполнении этой команды, если она не существует. Вы также можете создать её вручную следующим образом:
CREATE TABLE migration (
version varchar(180) PRIMARY KEY,
apply_time integer
)
Ниже приведены некоторые распространённые примеры использования этой команды:
# creates a new migration named 'create_user_table' yii migrate/create create_user_table # applies ALL new migrations yii migrate # reverts the last applied migration yii migrate/down
Начиная с версии 2.0.10, вы можете использовать миграции с именованными пространствами. Для активации этой функции вы должны настроить свойство $migrationNamespaces контроллера в конфигурации приложения:
return [
'controllerMap' => [
'migrate' => [
'class' => 'yii\console\controllers\MigrateController',
'migrationNamespaces' => [
'app\migrations',
'some\extension\migrations',
],
//'migrationPath' => null, // allows to disable not namespaced migration completely
],
],
];
Публичные свойства
| Свойство | Тип | Описание | Определено |
|---|---|---|---|
| $action | yii\base\Action | Действие, которое в данный момент выполняется. | yii\base\Controller |
| $behaviors | yii\base\Behavior[] | Список присоединённых к этому компоненту поведений. | yii\base\Component |
| $color | boolean | Включить цвет ANSI в выводе. | yii\console\Controller |
| $db | yii\db\Connection|array|string | Объект соединения с базой данных или идентификатор компонента приложения для соединения с базой данных, которое будет использоваться при применении миграций. | yii\console\controllers\MigrateController |
| $defaultAction | string | Идентификатор действия, используемого, когда идентификатор действия не указан в запросе. | yii\base\Controller |
| $fields | array | Строки определений столбцов, используемые для создания кода миграций. | yii\console\controllers\MigrateController |
| $generatorTemplateFiles | array | Набор путей шаблонов для автоматического создания кода миграций. | yii\console\controllers\MigrateController |
| $help | boolean | Показывать ли справочную информацию о текущей команде. | yii\console\Controller |
| $helpSummary | string | yii\console\Controller | |
| $id | string | Идентификатор этого контроллера. | yii\base\Controller |
| $interactive | boolean | Выполнять команду в интерактивном режиме. | yii\console\Controller |
| $layout | null|string|false | Имя макета, применяемого к представлениям этого контроллера. | yii\base\Controller |
| $migrationNamespaces | array | Список пространств имён, содержащих классы миграций. | yii\console\controllers\BaseMigrateController |
| $migrationPath | string|array | Директория, содержащая классы миграций. | yii\console\controllers\BaseMigrateController |
| $migrationTable | string | Имя таблицы для хранения информации о применённых миграциях. | yii\console\controllers\MigrateController |
| $module | yii\base\Module | Модуль, к которому принадлежит этот контроллер. | yii\base\Controller |
| $modules | yii\base\Module[] | Все родительские модули, в которых находится этот контроллер. | yii\base\Controller |
| $passedOptionValues | array | Свойства, соответствующие переданным параметрам. | yii\console\Controller |
| $passedOptions | array | Имена параметров, переданных при выполнении. | yii\console\Controller |
| $route | string | Путь (идентификатор модуля, контроллера и действия) текущего запроса. | yii\base\Controller |
| $templateFile | string | Шаблонный файл для создания новых миграций. | yii\console\controllers\MigrateController |
| $uniqueId | string | Идентификатор контроллера, который префиксруется идентификатором модуля (если он есть). | yii\base\Controller |
| $useTablePrefix | boolean | Указывает, должны ли имена таблиц учитывать значение tablePrefix настройки соединения с базой данных. | yii\console\controllers\MigrateController |
| $view | yii\base\View|yii\web\View | Объект представления, который может использоваться для рендеринга представлений или файлов представлений. | yii\base\Controller |
| $viewPath | string | Директория, содержащая файлы представлений для этого контроллера. | yii\base\Controller |
Публичные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | yii\base\Object |
| __clone() | Этот метод вызывается после создания объекта путём клонирования существующего. | yii\base\Component |
| __construct() | yii\base\Controller | |
| __get() | Возвращает значение свойства объекта. | yii\base\Object |
| __isset() | Проверяет, установлено ли свойство, т.е. определено и не равно null. | yii\base\Object |
| __set() | Устанавливает значение свойства объекта. | yii\base\Object |
| __unset() | Устанавливает свойство объекта в null. | yii\base\Object |
| actionCreate() | Создаёт новую миграцию. | yii\console\controllers\BaseMigrateController |
| actionDown() | Обрабатывает понижение версии приложения путём отмены старых миграций. | yii\console\controllers\BaseMigrateController |
| actionHistory() | Отображает историю миграций. | yii\console\controllers\BaseMigrateController |
| actionMark() | Изменяет историю миграций до указанной версии. | yii\console\controllers\BaseMigrateController |
| actionNew() | Отображает не применённые новые миграции. | yii\console\controllers\BaseMigrateController |
| actionRedo() | Повторно выполняет последние несколько миграций. | yii\console\controllers\BaseMigrateController |
| actionTo() | Обновляет или понижает до указанной версии. | yii\console\controllers\BaseMigrateController |
| actionUp() | Обновляет приложение путём применения новых миграций. | yii\console\controllers\BaseMigrateController |
| actions() | Объявляет внешние действия для контроллера. | yii\base\Controller |
| afterAction() | Этот метод вызывается сразу после выполнения действия. | yii\base\Controller |
| ansiFormat() | Форматирует строку с кодами ANSI. | yii\console\Controller |
| attachBehavior() | Присоединяет поведение к данному компоненту. | yii\base\Component |
| attachBehaviors() | Присоединяет список поведений к компоненту. | yii\base\Component |
| beforeAction() | Этот метод вызывается прямо перед выполнением действия (после всех возможных фильтров). Он проверяет существование $migrationPath. | yii\console\controllers\MigrateController |
| behaviors() | Возвращает список поведений, которые должен иметь этот компонент. | yii\base\Component |
| bindActionParams() | Связывает параметры с действием. | yii\console\Controller |
| canGetProperty() | Возвращает значение, указывающее, можно ли читать свойство. | yii\base\Object |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Object |
| className() | Возвращает полное квалифицированное имя этого класса. | yii\base\Object |
| confirm() | Запрашивает подтверждение от пользователя, введя y или n. | yii\console\Controller |
| createAction() | Создаёт действие на основе заданного идентификатора действия. | yii\base\Controller |
| detachBehavior() | Отсоединяет поведение от компонента. | yii\base\Component |
| detachBehaviors() | Отсоединяет все поведения от компонента. | yii\base\Component |
| ensureBehaviors() | Убеждается, что поведения, объявленные в behaviors(), присоединены к этому компоненту. | yii\base\Component |
| findLayoutFile() | Находит соответствующий файл макета. | yii\base\Controller |
| getActionArgsHelp() | Возвращает справочную информацию для анонимных аргументов действия. | yii\console\Controller |
| getActionHelp() | Возвращает подробную справочную информацию для указанного действия. | yii\console\Controller |
| getActionHelpSummary() | Возвращает однострочное краткое описание указанного действия. | yii\console\Controller |
| getActionOptionsHelp() | Возвращает справочную информацию для параметров действия. | yii\console\Controller |
| getBehavior() | Возвращает объект именованного поведения. | yii\base\Component |
| getBehaviors() | Возвращает все присоединённые к этому компоненту поведения. | yii\base\Component |
| getHelp() | Возвращает справочную информацию для этого контроллера. | yii\console\Controller |
| getHelpSummary() | Возвращает однострочное краткое описание этого контроллера. | yii\console\Controller |
| getModules() | Возвращает все предковые модули этого контроллера. | yii\base\Controller |
| getOptionValues() | Возвращает свойства, соответствующие параметрам для идентификатора действия. Дочерние классы могут переопределить этот метод, чтобы указать возможные свойства. | yii\console\Controller |
| getPassedOptionValues() | Возвращает свойства, соответствующие переданным параметрам. | yii\console\Controller |
| getPassedOptions() | Возвращает имена допустимых параметров, переданных во время выполнения. | yii\console\Controller |
| getRoute() | Возвращает маршрут текущего запроса. | yii\base\Controller |
| getUniqueId() | Возвращает уникальный идентификатор контроллера. | yii\base\Controller |
| getView() | Возвращает объект представления, который можно использовать для рендеринга представлений или файлов представлений. | yii\base\Controller |
| getViewPath() | Возвращает директорию, содержащую файлы представлений для данного контроллера. | yii\base\Controller |
| hasEventHandlers() | Возвращает значение, указывающее, есть ли обработчик, прикрепленный к указанному событию. | yii\base\Component |
| hasMethod() | Возвращает значение, указывающее, определен ли метод. | yii\base\Object |
| hasProperty() | Возвращает значение, указывающее, определена ли свойство. | yii\base\Object |
| init() | Инициализирует объект. | yii\base\Object |
| isColorEnabled() | Возвращает значение, указывающее, включен ли ANSI цвет. | yii\console\Controller |
| off() | Отсоединяет существующий обработчик событий от данного компонента. | yii\base\Component |
| on() | Прикрепляет обработчик событий к событию. | yii\base\Component |
| optionAliases() | Возвращает псевдонимы опций. | yii\console\controllers\MigrateController |
| options() | Возвращает имена допустимых опций для действия (id). Опция требует существования публичного переменной члена, имя которой соответствует имени опции. | yii\console\controllers\MigrateController |
| prompt() | Запрашивает у пользователя ввод и проверяет его. | yii\console\Controller |
| render() | Отображает представление и применяет макет, если он доступен. | yii\base\Controller |
| renderContent() | Отображает статическую строку, применяя макет. | yii\base\Controller |
| renderFile() | Отображает файл представления. | yii\base\Controller |
| renderPartial() | Отображает представление без применения макета. | yii\base\Controller |
| run() | Выполняет запрос, указанный в терминах маршрута. | yii\base\Controller |
| runAction() | Выполняет действие с указанным идентификатором действия и параметрами. | yii\console\Controller |
| select() | Предлагает пользователю выбрать из списка. Ввод '?' отобразит список опций с их пояснениями. | yii\console\Controller |
| setView() | Устанавливает объект представления, который будет использоваться этим контроллером. | yii\base\Controller |
| setViewPath() | Устанавливает директорию, содержащую файлы представлений. | yii\base\Controller |
| stderr() | Выводит строку в STDERR | yii\console\Controller |
| stdout() | Выводит строку в STDOUT | yii\console\Controller |
| trigger() | Вызывает событие. | yii\base\Component |
Защищенные методы
События
| Событие | Тип | Описание | Определено в |
|---|---|---|---|
| EVENT_AFTER_ACTION | yii\base\ActionEvent | Событие, которое срабатывает сразу после выполнения действия контроллера. | yii\base\Controller |
| EVENT_BEFORE_ACTION | yii\base\ActionEvent | Событие, которое срабатывает непосредственно перед выполнением действия контроллера. | yii\base\Controller |
Постоянные значения
| Постоянная | Значение | Описание | Определено в |
|---|---|---|---|
| BASE_MIGRATION | 'm000000_000000_base' | Имя фиктивной миграции, которая отмечает начало всей истории миграций. | yii\console\controllers\BaseMigrateController |
| EXIT_CODE_ERROR | 1 | yii\console\Controller | |
| EXIT_CODE_NORMAL | 0 | yii\console\Controller |
Подробное описание свойств
$db общедоступное свойство
Объект подключения к БД или идентификатор компонента приложения для подключения к БД, используемого при применении миграций. Начиная с версии 2.0.3, это также может быть массив конфигурации для создания объекта.
public yii\db\Connection|array|string $db = 'db'
$fields общедоступное свойство (доступно начиная с версии 2.0.7)
Строки определения столбцов, используемые для создания кода миграции.
Формат каждого определения: COLUMN_NAME:COLUMN_TYPE:COLUMN_DECORATOR. Разделитель: ,. Например, --fields="name:string(12):notNull:unique" создает строковый столбец размером 12, который не допускает NULL и содержит уникальные значения.
Примечание: первичный ключ добавляется автоматически и по умолчанию называется id. Если необходимо использовать другое имя, можно явно указать его, как в --fields="id_key:primaryKey,name:string(12):notNull:unique"
public array $fields = []
$generatorTemplateFiles общедоступное свойство (доступно начиная с версии 2.0.7)
Набор путей шаблонов для автоматического генерирования кода миграции.
Ключ — тип шаблона, значение — путь или псевдоним. Поддерживаемые типы:
-
create_table: шаблон для создания таблицы -
drop_table: шаблон для удаления таблицы -
add_column: шаблон для добавления нового столбца -
drop_column: шаблон для удаления столбца -
create_junction: шаблон для создания таблицы связи
public array $generatorTemplateFiles = ['create_table' => '@yii/views/createTableMigration.php', 'drop_table' => '@yii/views/dropTableMigration.php', 'add_column' => '@yii/views/addColumnMigration.php', 'drop_column' => '@yii/views/dropColumnMigration.php', 'create_junction' => '@yii/views/createTableMigration.php']
$migrationTable общедоступное свойство
Имя таблицы для хранения информации о применённых миграциях.
public string $migrationTable = '{{%migration}}'
$templateFile общедоступное свойство
Файл шаблона для создания новых миграций. Это может быть либо псевдоним пути (например, "@app/migrations/template.php"), либо путь к файлу.
public string $templateFile = '@yii/views/migration.php'
$useTablePrefix общедоступное свойство (доступно начиная с версии 2.0.8)
Указывает, должны ли имена сгенерированных таблиц учитывать настройку tablePrefix подключения к БД. Например, если имя таблицы post, генератор вернёт {{%post}}.
public boolean $useTablePrefix = false
Подробное описание методов
addDefaultPrimaryKey() защищённый метод (доступен с версии 2.0.7)
Добавляет первичный ключ по умолчанию в список полей, если первичный ключ не указан
| protected void addDefaultPrimaryKey ( &$fields ) | ||
|---|---|---|
| $fields | массив |
Обработанные поля |
addMigrationHistory() защищённый метод
Добавляет новую запись миграции в историю.
| protected void addMigrationHistory ( $version ) | ||
|---|---|---|
| $version | строка |
Имя версии миграции. |
beforeAction() публичный метод
Этот метод вызывается непосредственно перед выполнением действия (после всех возможных фильтров). Он проверяет существование $migrationPath.
| public булево beforeAction ( $action ) | ||
|---|---|---|
| $action | yii\base\Action |
Действие, которое будет выполнено. |
| return | булево |
Должно ли действие продолжить выполнение. |
createMigration() защищённый метод
Создаёт новый экземпляр миграции.
| protected yii\db\Migration createMigration ( $class ) | ||
|---|---|---|
| $class | строка |
Имя класса миграции |
| return | yii\db\Migration |
Экземпляр миграции |
createMigrationHistoryTable() защищённый метод
Создаёт таблицу истории миграций.
| protected void createMigrationHistoryTable ( ) |
|---|
generateMigrationSourceCode() защищённый метод (доступен с версии 2.0.8)
Генерирует новый PHP-код миграции.
Подклассы могут переопределять этот метод, добавляя дополнительную логику или вариации в процесс.
| protected строка generateMigrationSourceCode ( $params ) | ||
|---|---|---|
| $params | массив |
Параметры генерации, обычно присутствуют следующие параметры:
|
| return | строка |
Сгенерированный PHP-код. |
generateTableName() защищённый метод (доступен с версии 2.0.8)
Если useTablePrefix равно true, то имя таблицы будет содержать префиксный формат.
| protected строка generateTableName ( $tableName ) | ||
|---|---|---|
| $tableName | строка |
Имя таблицы для генерации. |
getMigrationHistory() защищённый метод
Возвращает историю миграций.
| protected массив getMigrationHistory ( $limit ) | ||
|---|---|---|
| $limit | целое число |
Максимальное количество записей в истории, которые должны быть возвращены. |
| return | массив |
История миграций |
optionAliases() публичный метод (доступен с версии 2.0.8)
Возвращает псевдонимы опций.
Подклассы могут переопределять этот метод, чтобы указать алиасы опций.
| public массив optionAliases ( ) | ||
|---|---|---|
| return | массив |
Псевдонимы опций, допустимые для действия, где ключ — псевдоним опции, а значение — имя опции. |
options() публичный метод
Возвращает имена допустимых опций для действия (id). Опция требует наличия открытой переменной-члена, имя которой — имя опции.
Подклассы могут переопределять этот метод, чтобы указать возможные опции.
Обратите внимание, что значения, заданные с помощью опций, недоступны до вызова beforeAction().
| public строка[] options ( $actionID ) | ||
|---|---|---|
| $actionID | строка |
Идентификатор действия текущего запроса |
| return | строка[] |
Имена опций, допустимых для действия |
parseFields() защищённый метод (доступен с версии 2.0.7)
Парсит поля миграции командной строки
| protected массив parseFields ( ) | ||
|---|---|---|
| return | массив |
Результат парсинга со следующими полями:
|
removeMigrationHistory() защищённый метод
Удаляет существующую миграцию из истории.
| protected void removeMigrationHistory ( $version ) | ||
|---|---|---|
| $version | строка |
Имя версии миграции. |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-console-controllers-migratecontroller.html