Spec-Zone.ru › Yii 2.0

Класс yii\db\Migration

Все классы | Свойства | Методы
Наследование yii\db\Migration » yii\base\Component » yii\base\Object
Реализует yii\base\Configurable, yii\db\MigrationInterface
Использует Трейты yii\db\SchemaBuilderTrait
Доступна с версии 2.0
Исходный код https://github.com/yiisoft/yii2/blob/master/framework/db/Migration.php

Migration — базовый класс для представления миграции базы данных.

Migration предназначен для совместного использования с командой «yii migrate».

Каждый дочерний класс Migration представляет отдельную миграцию базы данных, которая идентифицируется по имени дочернего класса.

В каждом классе миграции метод up() должен быть переопределён для содержать логику «обновления» базы данных; в то время как метод down() — для логики «отката». Команда «yii migrate» управляет всеми доступными миграциями в приложении.

Если база данных поддерживает транзакции, вы можете переопределить также методы safeUp() и safeDown(), чтобы в случае возникновения каких-либо проблем при обновлении или откате вся миграция могла быть отменена целиком.

Обратите внимание, что некоторые запросы к БД в некоторых СУБД не могут быть помещены в транзакцию. Для примеров обратитесь к неявной фиксации. В этом случае вы должны реализовать up() и down(), вместо этого.

Migration предоставляет набор удобных методов для манипулирования данными и схемой базы данных. Например, метод insert() можно использовать для лёгкого вставки строки данных в таблицу базы данных; метод createTable() можно использовать для создания таблицы базы данных. По сравнению с аналогичными методами в yii\db\Command, эти методы отобразят дополнительную информацию, показывая параметры метода и время выполнения, что может быть полезно при применении миграций.

Для получения более подробной информации и инструкций по использованию Migration, см. статью в руководстве о Migration.

Публичные свойства

Свойство Тип Описание Определено в
$behaviors yii\base\Behavior[] Список прикреплённых к данному компоненту поведений yii\base\Component
$db yii\db\Connection|array|string Объект подключения к БД или идентификатор компонента приложения подключения к БД, с которым должна работать эта миграция. yii\db\Migration
$maxSqlOutputLength integer Максимальное количество символов выводимого SQL. yii\db\Migration

Публичные методы

Метод Описание Определено в
__call() Вызывает именованный метод, который не является методом класса. yii\base\Component
__clone() Этот метод вызывается после создания объекта путём клонирования существующего. yii\base\Component
__construct() Конструктор. yii\base\Object
__get() Возвращает значение свойства компонента. yii\base\Component
__isset() Проверяет, установлено ли свойство, т.е. определено и не равно null. yii\base\Component
__set() Устанавливает значение свойства компонента. yii\base\Component
__unset() Устанавливает свойство компонента в null. yii\base\Component
addColumn() Создаёт и выполняет SQL-запрос для добавления нового столбца в базу данных. yii\db\Migration
addCommentOnColumn() Создаёт и выполняет SQL-запрос для добавления комментария к столбцу yii\db\Migration
addCommentOnTable() Создаёт SQL-запрос для добавления комментария к таблице yii\db\Migration
addForeignKey() Создаёт SQL-запрос для добавления внешнего ключа к существующей таблице. yii\db\Migration
addPrimaryKey() Создаёт и выполняет SQL-запрос для создания первичного ключа. yii\db\Migration
alterColumn() Создаёт и выполняет SQL-запрос для изменения определения столбца. yii\db\Migration
attachBehavior() Присоединяет поведение к этому компоненту. yii\base\Component
attachBehaviors() Присоединяет список поведений к компоненту. yii\base\Component
batchInsert() Создаёт и выполняет пакетный INSERT SQL-запрос. yii\db\Migration
behaviors() Возвращает список поведений, которые должен иметь этот компонент. yii\base\Component
bigInteger() Создаёт столбец bigint. yii\db\SchemaBuilderTrait
bigPrimaryKey() Создаёт столбец big primary key. yii\db\SchemaBuilderTrait
binary() Создаёт бинарный столбец. yii\db\SchemaBuilderTrait
boolean() Создаёт логический столбец. yii\db\SchemaBuilderTrait
canGetProperty() Возвращает значение, указывающее, можно ли прочитать свойство. yii\base\Component
canSetProperty() Возвращает значение, указывающее, можно ли установить свойство. yii\base\Component
char() Создаёт столбец char. yii\db\SchemaBuilderTrait
className() Возвращает полное квалифицированное имя этого класса. yii\base\Object
createIndex() Создаёт и выполняет SQL-запрос для создания нового индекса. yii\db\Migration
createTable() Создаёт и выполняет SQL-запрос для создания новой таблицы в базе данных. yii\db\Migration
date() Создаёт столбец date. yii\db\SchemaBuilderTrait
dateTime() Создаёт столбец datetime. yii\db\SchemaBuilderTrait
decimal() Создаёт столбец decimal. yii\db\SchemaBuilderTrait
delete() Создаёт и выполняет DELETE SQL-запрос. yii\db\Migration
detachBehavior() Отсоединяет поведение от компонента. yii\base\Component
detachBehaviors() Отсоединяет все поведения от компонента. yii\base\Component
double() Создаёт столбец double. yii\db\SchemaBuilderTrait
down() Этот метод содержит логику, которая должна быть выполнена при удалении этой миграции. yii\db\Migration
dropColumn() Создаёт и выполняет SQL-запрос для удаления столбца базы данных. yii\db\Migration
dropCommentFromColumn() Создаёт и выполняет SQL-запрос для удаления комментария из столбца yii\db\Migration
dropCommentFromTable() Создаёт SQL-запрос для удаления комментария из таблицы yii\db\Migration
dropForeignKey() Создаёт SQL-запрос для удаления ограничения внешнего ключа. yii\db\Migration
dropIndex() Создаёт и выполняет SQL-запрос для удаления индекса. yii\db\Migration
dropPrimaryKey() Создаёт и выполняет SQL-запрос для удаления первичного ключа. yii\db\Migration
dropTable() Создаёт и выполняет SQL-запрос для удаления таблицы базы данных. yii\db\Migration
ensureBehaviors() Убеждается, что поведения, объявленные в behaviors(), присоединены к этому компоненту. yii\base\Component
execute() Выполняет SQL-запрос. yii\db\Migration
float() Создаёт столбец float. yii\db\SchemaBuilderTrait
getBehavior() Возвращает объект поведения с указанным именем. yii\base\Component
getBehaviors() Возвращает все присоединённые к этому компоненту поведения. yii\base\Component
hasEventHandlers() Возвращает значение, указывающее, есть ли обработчик, присоединённый к указанному событию. yii\base\Component
hasMethod() Возвращает значение, указывающее, определён ли метод. yii\base\Component
hasProperty() Возвращает значение, указывающее, определено ли свойство для этого компонента. yii\base\Component
init() Инициализирует миграцию. yii\db\Migration
insert() Создаёт и выполняет INSERT SQL-запрос. yii\db\Migration
integer() Создаёт столбец целого типа. yii\db\SchemaBuilderTrait
money() Создаёт денежный столбец. yii\db\SchemaBuilderTrait
off() Отсоединяет существующий обработчик событий от данного компонента. yii\base\Component
on() Присоединяет обработчик событий к событию. yii\base\Component
primaryKey() Создаёт столбец первичного ключа. yii\db\SchemaBuilderTrait
renameColumn() Строит и выполняет SQL-запрос для переименования столбца. yii\db\Migration
renameTable() Строит и выполняет SQL-запрос для переименования таблицы БД. yii\db\Migration
safeDown() Этот метод содержит логику, которая выполняется при удалении этой миграции. yii\db\Migration
safeUp() Этот метод содержит логику, которая выполняется при применении этой миграции. yii\db\Migration
smallInteger() Создаёт столбец типа smallint. yii\db\SchemaBuilderTrait
string() Создаёт строковый столбец. yii\db\SchemaBuilderTrait
text() Создаёт текстовый столбец. yii\db\SchemaBuilderTrait
time() Создаёт столбец времени. yii\db\SchemaBuilderTrait
timestamp() Создаёт столбец временной метки. yii\db\SchemaBuilderTrait
trigger() Вызывает событие. yii\base\Component
truncateTable() Строит и выполняет SQL-запрос для обнуления таблицы БД. yii\db\Migration
up() Этот метод содержит логику, которая выполняется при применении этой миграции. yii\db\Migration
update() Создаёт и выполняет UPDATE SQL-запрос. yii\db\Migration

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

Метод Описание Определено в
getDb() yii\db\Migration

Подробное описание свойств

$db общедоступное свойство

Объект подключения к БД или идентификатор приложения компонента подключения к БД, с которым должна работать эта миграция. Начиная с версии 2.0.2, это также может быть массив конфигурации для создания объекта.

Обратите внимание, что при создании объекта Migration командой migrate, это свойство будет перезаписано командой. Если вы не хотите использовать подключение к БД, предоставленное командой, вы можете переопределить метод init(), как показано ниже:

public function init()
{
    $this->db = 'db2';
    parent::init();
}
public yii\db\Connection|array|string $db = 'db'

$maxSqlOutputLength общедоступное свойство (доступно начиная с версии 2.0.13)

Максимальное количество символов в выводимом SQL. Полезно для сокращения длинных запросов и повышения компактности вывода в консоли.

public integer $maxSqlOutputLength = null

Подробное описание методов

addColumn() public method

Создаёт и выполняет SQL-запрос для добавления нового столбца в БД.

public void addColumn ( $table, $column, $type )
$table string

Таблица, в которую будет добавлен новый столбец. Имя таблицы будет правильно обрамлено кавычками методом.

$column string

Имя нового столбца. Имя будет правильно обрамлено кавычками методом.

$type string

Тип столбца. Метод yii\db\QueryBuilder::getColumnType() будет вызван для преобразования абстрактного типа столбца (если таковой имеется) в физический. Всё, что не распознаётся как абстрактный тип, останется в сгенерированном SQL. Например, 'string' будет преобразован в 'varchar(255)', а 'string not null' станет 'varchar(255) not null'.

addCommentOnColumn() public method (доступно начиная с версии 2.0.8)

Создаёт и выполняет SQL-запрос для добавления комментария к столбцу

public void addCommentOnColumn ( $table, $column, $comment )
$table string

Таблица, столбец которой нужно прокомментировать. Имя таблицы будет правильно обрамлено кавычками методом.

$column string

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

$comment string

Текст комментария, который нужно добавить. Комментарий будет правильно обрамлён кавычками методом.

addCommentOnTable() public method (доступно начиная с версии 2.0.8)

Создаёт SQL-запрос для добавления комментария к таблице

public void addCommentOnTable ( $table, $comment )
$table string

Таблица, к которой нужно добавить комментарий. Имя таблицы будет правильно обрамлено кавычками методом.

$comment string

Текст комментария, который нужно добавить. Комментарий будет правильно обрамлён кавычками методом.

addForeignKey() public method

Создаёт SQL-запрос для добавления внешнего ключа к существующей таблице.

Метод будет правильно обрамлять кавычками имена таблиц и столбцов.

public void addForeignKey ( $name, $table, $columns, $refTable, $refColumns, $delete = null, $update = null )
$name string

Имя ограничения внешнего ключа.

$table string

Таблица, к которой будет добавлено ограничение внешнего ключа.

$columns string|array

Имя столбца, к которому будет добавлено ограничение. Если столбцов несколько, разделяйте их запятыми или используйте массив.

$refTable string

Таблица, к которой ссылается внешний ключ.

$refColumns string|array

Имя столбца, к которому ссылается внешний ключ. Если столбцов несколько, разделяйте их запятыми или используйте массив.

$delete string

Опция ON DELETE. Большинство СУБД поддерживают следующие опции: RESTRICT, CASCADE, NO ACTION, SET DEFAULT, SET NULL

$update string

Опция ON UPDATE. Большинство СУБД поддерживают следующие опции: RESTRICT, CASCADE, NO ACTION, SET DEFAULT, SET NULL

addPrimaryKey() public method

Создаёт и выполняет SQL-запрос для создания первичного ключа.

Метод будет правильно обрамлять кавычками имена таблиц и столбцов.

public void addPrimaryKey ( $name, $table, $columns )
$name string

Имя ограничения первичного ключа.

$table string

Таблица, к которой будет добавлено ограничение первичного ключа.

$columns string|array

Строка с перечислением столбцов через запятую или массив столбцов, из которых будет состоять первичный ключ.

alterColumn() public method

Создаёт и выполняет SQL-запрос для изменения определения столбца.

public void alterColumn ( $table, $column, $type )
$table string

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

$column string

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

$type string

Новый тип столбца. Метод yii\db\QueryBuilder::getColumnType() будет вызван для преобразования абстрактного типа столбца (если таковой имеется) в физический. Всё, что не распознаётся как абстрактный тип, останется в сгенерированном SQL. Например, 'string' будет преобразован в 'varchar(255)', а 'string not null' станет 'varchar(255) not null'.

batchInsert() public method

Создаёт и выполняет SQL-запрос для массового вставки данных.

Метод будет правильно экранировать имена столбцов и связать значения для вставки.

public void batchInsert ( $table, $columns, $rows )
$table string

Таблица, в которую будут вставлены новые строки.

$columns array

Имена столбцов.

$rows array

Строки, которые будут массово вставлены в таблицу

createIndex() public method

Создаёт и выполняет SQL-запрос для создания нового индекса.

public void createIndex ( $name, $table, $columns, $unique = false )
$name string

Имя индекса. Имя будет правильно обрамлено кавычками методом.

$table string

Таблица, для которой будет создан новый индекс. Имя таблицы будет правильно обрамлено кавычками методом.

$columns string|array

Столбец(ы), которые должны быть включены в индекс. Если столбцов несколько, разделяйте их запятыми или используйте массив. Каждое имя столбца будет правильно обрамлено кавычками методом. Обрамление кавычками будет пропущено для имён столбцов, содержащих левую круглую скобку "(".

$unique boolean

Добавить ли ограничение UNIQUE на созданный индекс.

createTable() public method

Создаёт и выполняет SQL-запрос для создания новой таблицы БД.

Столбцы новой таблицы должны быть указаны как пары имя-определение (например, 'name' => 'string'), где имя — имя столбца, которое будет правильно обрамлено кавычками методом, а определение — тип столбца, который может содержать абстрактный тип БД.

Метод yii\db\QueryBuilder::getColumnType() будет вызван для преобразования любого абстрактного типа в физический.

Если столбец указан только с определением (например, 'PRIMARY KEY (name, type)'), он будет напрямую помещён в сгенерированный SQL.

public void createTable ( $table, $columns, $options = null )
$table string

Имя создаваемой таблицы. Имя будет правильно обрамлено кавычками методом.

$columns array

Столбцы (имя => определение) в новой таблице.

$options string

Дополнительный фрагмент SQL, который будет добавлен к сгенерированному SQL.

delete() public method

Создаёт и выполняет SQL-запрос DELETE.

public void удалить ( $table, $condition = '', $params = [] )
$table string

Таблица, из которой будут удалены данные.

$condition массив|строка

Условия, которые будут добавлены в часть WHERE. Обратитесь к yii\db\Query::where() для получения информации о том, как указать условия.

$params массив

Параметры, которые будут связаны с запросом.

down() public method

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

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

public boolean down ( )
return boolean

Возвращение значения false указывает на неудачу миграции и не следует продолжать выполнение. Все другие значения возврата означают успех миграции.

dropColumn() public method

Создаёт и выполняет SQL-запрос для удаления столбца БД.

public void dropColumn ( $table, $column )
$table строка

Таблица, из которой должен быть удалён столбец. Имя будет корректно обрамлено кавычками методом.

$column строка

Имя столбца, который должен быть удалён. Имя будет корректно обрамлено кавычками методом.

dropCommentFromColumn() public method (available since version 2.0.8)

Создаёт и выполняет SQL-запрос для удаления комментария из столбца

public void dropCommentFromColumn ( $table, $column )
$table строка

Таблица, из которой должен быть удалён комментарий. Имя таблицы будет корректно обрамлено кавычками методом.

$column строка

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

dropCommentFromTable() public method (available since version 2.0.8)

Создаёт SQL-запрос для удаления комментария из таблицы

public void dropCommentFromTable ( $table )
$table строка

Таблица, из которой должен быть удалён комментарий. Имя таблицы будет корректно обрамлено кавычками методом.

dropForeignKey() public method

Создаёт SQL-запрос для удаления внешнего ключа.

public void dropForeignKey ( $name, $table )
$name строка

Имя внешнего ключа, который нужно удалить. Имя будет корректно обрамлено кавычками методом.

$table строка

Таблица, из которой нужно удалить внешний ключ. Имя будет корректно обрамлено кавычками методом.

dropIndex() public method

Создаёт и выполняет SQL-запрос для удаления индекса.

public void dropIndex ( $name, $table )
$name строка

Имя индекса, который нужно удалить. Имя будет корректно обрамлено кавычками методом.

$table строка

Таблица, из которой нужно удалить индекс. Имя будет корректно обрамлено кавычками методом.

dropPrimaryKey() public method

Создаёт и выполняет SQL-запрос для удаления первичного ключа.

public void dropPrimaryKey ( $name, $table )
$name строка

Имя ограничения первичного ключа, которое нужно удалить.

$table строка

Таблица, из которой нужно удалить ограничение первичного ключа.

dropTable() public method

Создаёт и выполняет SQL-запрос для удаления таблицы БД.

public void dropTable ( $table )
$table строка

Таблица, которая должна быть удалена. Имя будет корректно обрамлено кавычками методом.

execute() public method

Выполняет SQL-запрос.

Этот метод выполняет указанный SQL-запрос с помощью $db.

public void execute ( $sql, $params = [] )
$sql строка

SQL-запрос, который нужно выполнить

$params массив

Входные параметры (имя => значение) для выполнения SQL-запроса. См. yii\db\Command::execute() для получения дополнительной информации.

getDb() protected method (available since version 2.0.6)

protected void getDb ( )

init() public method

Инициализирует миграцию.

Этот метод установит $db в компонент приложения 'db', если он null.

public void init ( )

insert() public method

Создаёт и выполняет INSERT SQL-запрос.

Метод корректно обработает имена столбцов и свяжет вставляемые значения.

public void insert ( $table, $columns )
$table строка

Таблица, в которую будут вставлены новые строки.

$columns массив

Данные столбцов (имя => значение) для вставки в таблицу.

renameColumn() public method

Создаёт и выполняет SQL-запрос для переименования столбца.

public void renameColumn ( $table, $name, $newName )
$table строка

Таблица, столбец которой нужно переименовать. Имя будет корректно обрамлено кавычками методом.

$name строка

Старое имя столбца. Имя будет корректно обрамлено кавычками методом.

$newName строка

Новое имя столбца. Имя будет корректно обрамлено кавычками методом.

renameTable() public method

Создаёт и выполняет SQL-запрос для переименования таблицы БД.

public void renameTable ( $table, $newName )
$table строка

Таблица, которую нужно переименовать. Имя будет корректно обрамлено кавычками методом.

$newName строка

Новое имя таблицы. Имя будет корректно обрамлено кавычками методом.

safeDown() public method

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

Этот метод отличается от down() тем, что логика БД, реализованная здесь, будет заключена в транзакцию БД. Подклассы могут реализовать этот метод вместо down(), если логика БД должна быть внутри транзакции.

Примечание: не все СУБД поддерживают транзакции. И некоторые запросы БД не могут быть помещены в транзакцию. Для некоторых примеров обратитесь к неявной фиксации. В этом случае вы всё равно должны реализовать up() и down(), вместо этого.

public boolean safeDown ( )
return boolean

Возвращает значение false, чтобы указать, что миграция завершается неудачно и не должна продолжаться дальше. Все другие возвращаемые значения означают, что миграция выполняется успешно.

safeUp() public method

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

Этот метод отличается от up() тем, что база данных логика, реализованная здесь, будет заключена в транзакцию базы данных. Дочерние классы могут реализовать этот метод вместо up(), если логика базы данных должна быть в рамках транзакции.

Примечание: не все СУБД поддерживают транзакции. И некоторые запросы к базе данных не могут быть помещены в транзакцию. Для некоторых примеров, пожалуйста, обратитесь к неявной фиксации. В этом случае вы по-прежнему должны реализовать up() и down(), вместо этого.

public boolean safeUp ( )
return boolean

Возвращает значение false, чтобы указать, что миграция завершается неудачно и не должна продолжаться дальше. Все другие возвращаемые значения означают, что миграция выполняется успешно.

truncateTable() public method

Создает и выполняет оператор SQL для усечения таблицы базы данных.

public void truncateTable ( $table )
$table string

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

up() public method

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

Дочерние классы могут переопределить этот метод, чтобы предоставить фактическую логику миграции.

public boolean up ( )
return boolean

Возвращает значение false, чтобы указать, что миграция завершается неудачно и не должна продолжаться дальше. Все другие возвращаемые значения означают, что миграция выполняется успешно.

update() public method

Создает и выполняет оператор UPDATE SQL.

Метод корректно экранирует имена столбцов и связывает обновляемые значения.

public void update ( $table, $columns, $condition = '', $params = [] )
$table string

Таблица, которая должна быть обновлена.

$columns array

Данные столбцов (имя => значение) для обновления.

$condition array|string

Условие, которое будет помещено в часть WHERE. Обратитесь к yii\db\Query::where() для получения информации о том, как указать условия.

$params array

Параметры, которые будут связаны с запросом.

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-db-migration.html

Spec-Zone.ru

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