Spec-Zone.ru › Yii 2.0

Класс 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

Защищенные методы

Метод Описание Определен в
addDefaultPrimaryKey() Добавляет первичный ключ по умолчанию в список полей, если он не указан. yii\console\controllers\MigrateController
addMigrationHistory() Добавляет новую запись миграции в историю. yii\console\controllers\MigrateController
createMigration() Создает новый экземпляр миграции. yii\console\controllers\MigrateController
createMigrationHistoryTable() Создает таблицу истории миграций. yii\console\controllers\MigrateController
generateMigrationSourceCode() Генерирует новый PHP код миграции. yii\console\controllers\MigrateController
generateTableName() Если useTablePrefix равно true, то имя таблицы будет содержать префиксный формат. yii\console\controllers\MigrateController
getActionMethodReflection() yii\console\Controller
getMigrationHistory() Возвращает историю миграций. yii\console\controllers\MigrateController
getNewMigrations() Возвращает миграции, которые не были применены. yii\console\controllers\BaseMigrateController
includeMigrationFile() Включает файл миграции для данного имени класса миграции. yii\console\controllers\BaseMigrateController
migrateDown() Обратная миграция указанного класса миграции. yii\console\controllers\BaseMigrateController
migrateToTime() Мигрирует до указанного времени применения в прошлом. yii\console\controllers\BaseMigrateController
migrateToVersion() Мигрирует до определенной версии. yii\console\controllers\BaseMigrateController
migrateUp() Миграция указанного класса миграции. yii\console\controllers\BaseMigrateController
parseDocCommentDetail() Возвращает полное описание из docблока. yii\console\Controller
parseDocCommentSummary() Возвращает первую строку docблока. yii\console\Controller
parseDocCommentTags() Парсит блок комментариев на теги. yii\console\Controller
parseFields() Парсит поля миграции из командной строки. yii\console\controllers\MigrateController
removeMigrationHistory() Удаляет существующую миграцию из истории. yii\console\controllers\MigrateController

События

Событие Тип Описание Определено в
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 массив

Параметры генерации, обычно присутствуют следующие параметры:

  • name: строка базового имени миграции
  • className: строка имени класса миграции
return строка

Сгенерированный PHP-код.

generateTableName() защищённый метод (доступен с версии 2.0.8)

Если useTablePrefix равно true, то имя таблицы будет содержать префиксный формат.

protected строка generateTableName ( $tableName )
$tableName строка

Имя таблицы для генерации.

getMigrationHistory() защищённый метод

Возвращает историю миграций.

protected массив getMigrationHistory ( $limit )
$limit целое число

Максимальное количество записей в истории, которые должны быть возвращены. null для «без ограничений».

return массив

История миграций

optionAliases() публичный метод (доступен с версии 2.0.8)

Возвращает псевдонимы опций.

Подклассы могут переопределять этот метод, чтобы указать алиасы опций.

public массив optionAliases ( )
return массив

Псевдонимы опций, допустимые для действия, где ключ — псевдоним опции, а значение — имя опции.

options() публичный метод

Возвращает имена допустимых опций для действия (id). Опция требует наличия открытой переменной-члена, имя которой — имя опции.

Подклассы могут переопределять этот метод, чтобы указать возможные опции.

Обратите внимание, что значения, заданные с помощью опций, недоступны до вызова beforeAction().

public строка[] options ( $actionID )
$actionID строка

Идентификатор действия текущего запроса

return строка[]

Имена опций, допустимых для действия

parseFields() защищённый метод (доступен с версии 2.0.7)

Парсит поля миграции командной строки

protected массив parseFields ( )
return массив

Результат парсинга со следующими полями:

  • fields: массив, обработанные поля
  • foreignKeys: массив, обнаруженные внешние ключи

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API