Spec-Zone.ru › Yii 1.1

CDbMigration

Пакет system.db
Наследование абстрактный класс CDbMigration » CComponent
С момента 1.1.6
Исходный код framework/db/CDbMigration.php
CDbMigration — базовый класс для представления миграции базы данных.

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

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

Внутри каждой миграции метод up содержит логику «обновления» базы данных, используемой в приложении, а метод down содержит логику «отката». Команда «yiic migrate» управляет всеми доступными миграциями в приложении.

Переопределяя методы safeUp или safeDown вместо up и down, логика миграции будет обернута транзакцией базы данных.

CDbMigration предоставляет набор удобных методов для управления данными и схемой базы данных. Например, метод insert может использоваться для лёгкой вставки строки данных в таблицу базы данных; метод createTable может использоваться для создания таблицы базы данных. По сравнению с аналогичными методами в CDbCommand, эти методы отобразят дополнительную информацию, показывающую параметры метода и время выполнения, что может быть полезно при применении миграций.

Свойства Public

Свойство Тип Описание Определено
dbConnection CDbConnection Возвращает текущее активное подключение к базе данных. CDbMigration

Общедоступные методы

Метод Описание Определён в
__call() Вызывает именованный метод, который не является методом класса. CComponent
__get() Возвращает значение свойства, список обработчиков событий или поведение на основе его имени. CComponent
__isset() Проверяет, является ли значение свойства нулевым. CComponent
__set() Устанавливает значение свойства компонента. CComponent
__unset() Устанавливает свойство компонента в значение null. CComponent
addColumn() Строит и выполняет SQL-запрос для добавления новой колонки в БД. CDbMigration
addForeignKey() Строит SQL-запрос для добавления ограничения внешнего ключа к существующей таблице. CDbMigration
addPrimaryKey() Строит и выполняет SQL-запрос для создания первичного ключа, поддерживает составные первичные ключи. CDbMigration
alterColumn() Строит и выполняет SQL-запрос для изменения определения колонки. CDbMigration
asa() Возвращает объект поведения с заданным именем. CComponent
attachBehavior() Присоединяет поведение к этому компоненту. CComponent
attachBehaviors() Присоединяет список поведений к компоненту. CComponent
attachEventHandler() Присоединяет обработчик события к событию. CComponent
canGetProperty() Определяет, можно ли прочитать свойство. CComponent
canSetProperty() Определяет, можно ли установить свойство. CComponent
createIndex() Строит и выполняет SQL-запрос для создания нового индекса. CDbMigration
createTable() Строит и выполняет SQL-запрос для создания новой таблицы БД. CDbMigration
delete() Создаёт и выполняет DELETE SQL-запрос. CDbMigration
detachBehavior() Отсоединяет поведение от компонента. CComponent
detachBehaviors() Отсоединяет все поведения от компонента. CComponent
detachEventHandler() Отсоединяет существующий обработчик события. CComponent
disableBehavior() Отключает присоединённое поведение. CComponent
disableBehaviors() Отключает все поведения, присоединённые к этому компоненту. CComponent
down() Этот метод содержит логику, выполняемую при удалении этой миграции. CDbMigration
dropColumn() Строит и выполняет SQL-запрос для удаления колонки БД. CDbMigration
dropForeignKey() Строит SQL-запрос для удаления ограничения внешнего ключа. CDbMigration
dropIndex() Строит и выполняет SQL-запрос для удаления индекса. CDbMigration
dropPrimaryKey() Строит и выполняет SQL-запрос для удаления первичного ключа, поддерживает составные первичные ключи. CDbMigration
dropTable() Строит и выполняет SQL-запрос для удаления таблицы БД. CDbMigration
enableBehavior() Включает присоединённое поведение. CComponent
enableBehaviors() Включает все присоединённые к этому компоненту поведения. CComponent
evaluateExpression() Вычисляет PHP выражение или обратный вызов в контексте этого компонента. CComponent
execute() Выполняет SQL-запрос. CDbMigration
getDbConnection() Возвращает текущее активное подключение к базе данных. CDbMigration
getEventHandlers() Возвращает список присоединённых обработчиков событий для события. CComponent
hasEvent() Определяет, определено ли событие. CComponent
hasEventHandler() Проверяет, есть ли присоединённые обработчики для именованного события. CComponent
hasProperty() Определяет, определено ли свойство. CComponent
insert() Создаёт и выполняет INSERT SQL-запрос. CDbMigration
insertMultiple() Создаёт и выполняет INSERT SQL-запрос с несколькими данными. CDbMigration
raiseEvent() Вызывает событие. CComponent
refreshTableSchema() Обновляет кэш схемы таблицы CDbMigration
renameColumn() Строит и выполняет SQL-запрос для переименования колонки. CDbMigration
renameTable() Строит и выполняет SQL-запрос для переименования таблицы БД. CDbMigration
safeDown() Этот метод содержит логику, выполняемую при удалении этой миграции. CDbMigration
safeUp() Этот метод содержит логику, выполняемую при применении этой миграции. CDbMigration
setDbConnection() Устанавливает текущее активное подключение к базе данных. CDbMigration
truncateTable() Строит и выполняет SQL-запрос для усечения таблицы БД. CDbMigration
up() Этот метод содержит логику, выполняемую при применении этой миграции. CDbMigration
update() Создаёт и выполняет UPDATE SQL-запрос. CDbMigration

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

dbConnection свойство

public CDbConnection getDbConnection()
public void setDbConnection(CDbConnection $db)

Возвращает текущее активное подключение к базе данных. По умолчанию возвращается и активируется компонент приложения 'db'. Вы можете вызвать setDbConnection, чтобы переключиться на другое подключение к базе данных. Методы, такие как insert, createTable, будут использовать это подключение для выполнения запросов к БД.

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

addColumn() метод

public void addColumn(string $table, string $column, string $type)
$table string таблица, к которой будет добавлена новая колонка. Имя таблицы будет корректно обрамлено кавычками методом.
$column string имя новой колонки. Имя будет корректно обрамлено кавычками методом.
$type string тип колонки. Метод getColumnType будет вызван для преобразования абстрактного типа колонки (если таковой имеется) в физический. Всё, что не распознаётся как абстрактный тип, останется в сгенерированном SQL. Например, 'string' будет преобразовано в 'varchar(255)', а 'string not null' в 'varchar(255) not null'.
Исходный код: framework/db/CDbMigration.php#299 (показать)
public function addColumn($table, $column, $type)
{
    echo 
"    > add column $column$type to table $table ...";
    
$time=microtime(true);
    
$this->getDbConnection()->createCommand()->addColumn($table, $column, $type);
    echo 
" done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}

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

addForeignKey() метод

public void addForeignKey(string $name, string $table, string|array $columns, string $refTable, string|array $refColumns, string $delete=NULL, string $update=NULL)
$name строка имя ограничения внешнего ключа.
$table строка таблица, к которой будет добавлено ограничение внешнего ключа.
$columns строка|массив имя столбца, к которому будет добавлено ограничение. Если столбцов несколько, разделяйте их запятыми или передавайте массив имён столбцов.
$refTable строка таблица, на которую ссылается внешний ключ.
$refColumns строка|массив имя столбца, на который ссылается внешний ключ. Если столбцов несколько, разделяйте их запятыми или передавайте массив имён столбцов.
$delete строка опция ON DELETE. Большинство СУБД поддерживают такие опции: RESTRICT, CASCADE, NO ACTION, SET DEFAULT, SET NULL
$update строка опция ON UPDATE. Большинство СУБД поддерживают такие опции: RESTRICT, CASCADE, NO ACTION, SET DEFAULT, SET NULL
Исходный код: framework/db/CDbMigration.php#361 (показать)
public function addForeignKey($name, $table, $columns, $refTable, $refColumns, $delete=null, $update=null)
{
    echo 
"    > add foreign key $name: $table (".(is_array($columns) ? implode(',', $columns) : $columns).
         
") references $refTable (".(is_array($refColumns) ? implode(',', $refColumns) : $refColumns).") ...";
    
$time=microtime(true);
    
$this->getDbConnection()->createCommand()->addForeignKey($name, $table, $columns, $refTable, $refColumns, $delete, $update);
    echo 
" done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}

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

addPrimaryKey() метод (доступен начиная с v1.1.13)

public void addPrimaryKey(string $name, string $table, string|array $columns)
$name строка имя ограничения первичного ключа для добавления
$table строка имя таблицы, к которой будет добавлен первичный ключ
$columns строка|массив строка со столбцами, разделёнными запятыми, или массив имён столбцов, составляющих первичный ключ. Массив доступен с версии 1.1.14.
Исходный код: framework/db/CDbMigration.php#433 (показать)
public function addPrimaryKey($name,$table,$columns)
{
    echo 
"    > alter table $table add constraint $name primary key (".(is_array($columns) ? implode(',', $columns) : $columns).") ...";
    
$time=microtime(true);
    
$this->getDbConnection()->createCommand()->addPrimaryKey($name,$table,$columns);
    echo 
" done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}

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

alterColumn() метод

public void alterColumn(string $table, string $column, string $type)
$table строка таблица, столбец которой нужно изменить. Имя таблицы будет корректно обрамлено в кавычки методом.
$column строка имя столбца, который нужно изменить. Имя будет корректно обрамлено в кавычки методом.
$type строка новый тип столбца. Будет вызван метод getColumnType для преобразования абстрактного типа столбца (если есть) в физический. Всё, что не распознаётся как абстрактный тип, сохранится в сгенерированном SQL. Например, 'string' преобразуется в 'varchar(255)', а 'string not null' — в 'varchar(255) not null'.
Исходный код: framework/db/CDbMigration.php#342 (показать)
public function alterColumn($table, $column, $type)
{
    echo 
"    > alter column $column in table $table to $type ...";
    
$time=microtime(true);
    
$this->getDbConnection()->createCommand()->alterColumn($table, $column, $type);
    echo 
" done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}

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

createIndex() метод

public void createIndex(string $name, string $table, string|array $columns, boolean $unique=false)
$name строка имя индекса. Имя будет корректно обрамлено в кавычки методом.
$table строка таблица, для которой будет создан новый индекс. Имя таблицы будет корректно обрамлено в кавычки методом.
$columns строка|массив столбец(ы), которые должны быть включены в индекс. Если столбцов несколько, разделяйте их запятыми или передавайте массив имён столбцов. Каждое имя столбца будет обрамлено в кавычки методом, если в имени не будет найдено скобок.
$unique логическое указывает, нужно ли добавить ограничение UNIQUE на созданный индекс.
Исходный код: framework/db/CDbMigration.php#391 (показать)
public function createIndex($name, $table, $columns, $unique=false)
{
    echo 
"    > create".($unique ? ' unique':'')." index $name on $table (".(is_array($columns) ? implode(',', $columns) : $columns).") ...";
    
$time=microtime(true);
    
$this->getDbConnection()->createCommand()->createIndex($name, $table, $columns, $unique);
    echo 
" done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}

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

createTable() метод

public void createTable(string $table, array $columns, string $options=NULL)
$table строка имя создаваемой таблицы. Имя будет корректно обрамлено в кавычки методом.
$columns массив столбцы (имя=>определение) в новой таблице.
$options строка дополнительный фрагмент SQL, который будет добавлен к сгенерированному SQL-запросу.
Исходный код: framework/db/CDbMigration.php#246 (показать)
public function createTable($table, $columns, $options=null)
{
    echo 
"    > create table $table ...";
    
$time=microtime(true);
    
$this->getDbConnection()->createCommand()->createTable($table, $columns, $options);
    echo 
" done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}

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

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

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

delete() метод

public void delete(string $table, mixed $conditions='', array $params=array ( ))
$table строка таблица, из которой будут удалены данные.
$conditions смешанный тип условия, которые будут использованы в части WHERE. Обратитесь к CDbCommand::where для получения информации о том, как задавать условия.
$params массив параметры, которые будут связаны с запросом.
Исходный код: framework/db/CDbMigration.php#223 (показать)
public function delete($table, $conditions='', $params=array())
{
    echo 
"    > delete from $table ...";
    
$time=microtime(true);
    
$this->getDbConnection()->createCommand()->delete($table, $conditions, $params);
    echo 
" done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}

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

down() метод

public boolean down()
{return} логическое Возвращение false означает, что миграция не будет применена.
Исходный код: framework/db/CDbMigration.php#74 (показать)
public function down()
{
    
$transaction=$this->getDbConnection()->beginTransaction();
    try
    {
        if(
$this->safeDown()===false)
        {
            
$transaction->rollback();
            return 
false;
        }
        
$transaction->commit();
    }
    catch(
Exception $e)
    {
        echo 
"Exception: ".$e->getMessage().' ('.$e->getFile().':'.$e->getLine().")\n";
        echo 
$e->getTraceAsString()."\n";
        
$transaction->rollback();
        return 
false;
    }
}

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

dropColumn() метод

public void dropColumn(string $table, string $column)
$table строка таблица, столбец которой нужно удалить. Имя таблицы будет корректно обрамлено в кавычки методом.
$column строка имя столбца, который нужно удалить. Имя будет корректно обрамлено в кавычки методом.
Исходный код: framework/db/CDbMigration.php#312 (показать)
public function dropColumn($table, $column)
{
    echo 
"    > drop column $column from table $table ...";
    
$time=microtime(true);
    
$this->getDbConnection()->createCommand()->dropColumn($table, $column);
    echo 
" done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}

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

dropForeignKey() метод

public void dropForeignKey(string $name, string $table)
$name строка имя ограничения внешнего ключа, которое нужно удалить. Имя будет корректно обрамлено в кавычки методом.
$table строка таблица, из которой нужно удалить ограничение внешнего ключа. Имя таблицы будет корректно обрамлено в кавычки методом.
Исходный код: framework/db/CDbMigration.php#375 (показать)
public function dropForeignKey($name, $table)
{
    echo 
"    > drop foreign key $name from table $table ...";
    
$time=microtime(true);
    
$this->getDbConnection()->createCommand()->dropForeignKey($name, $table);
    echo 
" done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}

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

dropIndex() метод

public void dropIndex(string $name, string $table)
$name строка имя индекса, который нужно удалить. Имя будет корректно обрамлено кавычками методом.
$table строка таблица, из которой нужно удалить индекс. Имя будет корректно обрамлено кавычками методом.
Исходный код: framework/db/CDbMigration.php#404 (показать)
public function dropIndex($name, $table)
{
    echo 
"    > drop index $name ...";
    
$time=microtime(true);
    
$this->getDbConnection()->createCommand()->dropIndex($name, $table);
    echo 
" done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}

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

dropPrimaryKey() метод (доступен с версии v1.1.13)

public void dropPrimaryKey(string $name, string $table)
$name строка имя ограничения, которое нужно удалить
$table строка имя таблицы, из которой нужно удалить первичный ключ
Исходный код: framework/db/CDbMigration.php#447 (показать)
public function dropPrimaryKey($name,$table)
{
    echo 
"    > alter table $table drop primary key $name ...";
    
$time=microtime(true);
    
$this->getDbConnection()->createCommand()->dropPrimaryKey($name,$table);
    echo 
" done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}

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

dropTable() метод

public void dropTable(string $table)
$table строка таблица, которую нужно удалить. Имя будет корректно обрамлено кавычками методом.
Исходный код: framework/db/CDbMigration.php#271 (показать)
public function dropTable($table)
{
    echo 
"    > drop table $table ...";
    
$time=microtime(true);
    
$this->getDbConnection()->createCommand()->dropTable($table);
    echo 
" done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}

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

execute() метод (доступен с версии v1.1.7)

public void execute(string $sql, array $params=array ( ))
$sql строка SQL-запрос, который нужно выполнить
$params массив входные параметры (имя=>значение) для выполнения SQL-запроса. См. CDbCommand::execute для получения более подробной информации.
Исходный код: framework/db/CDbMigration.php#160 (показать)
public function execute($sql, $params=array())
{
    echo 
"    > execute SQL: $sql ...";
    
$time=microtime(true);
    
$this->getDbConnection()->createCommand($sql)->execute($params);
    echo 
" done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}

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

getDbConnection() метод

public CDbConnection getDbConnection()
{return} CDbConnection текущее активное подключение к базе данных
Исходный код: framework/db/CDbMigration.php#132 (показать)
public function getDbConnection()
{
    if(
$this->_db===null)
    {
        
$this->_db=Yii::app()->getComponent('db');
        if(!
$this->_db instanceof CDbConnection)
            throw new 
CException(Yii::t('yii', 'The "db" application component must be configured to be a CDbConnection object.'));
    }
    return 
$this->_db;
}

Возвращает текущее активное подключение к базе данных. По умолчанию возвращается и активируется компонент приложения 'db'. Вы можете вызвать setDbConnection, чтобы переключиться на другое подключение к базе данных. Методы, такие как insert, createTable, будут использовать это подключение к базе данных для выполнения запросов к БД.

insert() метод

public void insert(string $table, array $columns)
$table строка таблица, в которую будут добавлены новые строки.
$columns массив данные столбцов (имя=>значение), которые нужно добавить в таблицу.
Исходный код: framework/db/CDbMigration.php#174 (показать)
public function insert($table, $columns)
{
    echo 
"    > insert into $table ...";
    
$time=microtime(true);
    
$this->getDbConnection()->createCommand()->insert($table, $columns);
    echo 
" done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}

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

insertMultiple() метод (доступен с версии v1.1.16)

public void insertMultiple(string $table, array $data)
$table строка таблица, в которую будут добавлены новые строки.
$data массив массив различных данных столбцов (имя=>значение) для вставки в таблицу.
Исходный код: framework/db/CDbMigration.php#189 (показать)
public function insertMultiple($table, $data)
{
    echo 
"    > insert into $table ...";
    
$time=microtime(true);
    
$builder=$this->getDbConnection()->getSchema()->getCommandBuilder();
    
$command=$builder->createMultipleInsertCommand($table,$data);
    
$command->execute();
    echo 
" done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}

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

refreshTableSchema() метод (доступен с версии v1.1.9)

public void refreshTableSchema(string $table)
$table строка имя таблицы для обновления
Исходный код: framework/db/CDbMigration.php#417 (показать)
public function refreshTableSchema($table)
{
    echo 
"    > refresh table $table schema cache ...";
    
$time=microtime(true);
    
$this->getDbConnection()->getSchema()->getTable($table,true);
    echo 
" done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}

Обновляет кеш схемы таблицы

renameColumn() метод

public void renameColumn(string $table, string $name, string $newName)
$table строка таблица, столбец которой нужно переименовать. Имя будет корректно обрамлено кавычками методом.
$name строка старое имя столбца. Имя будет корректно обрамлено кавычками методом.
$newName строка новое имя столбца. Имя будет корректно обрамлено кавычками методом.
Исходный код: framework/db/CDbMigration.php#326 (показать)
public function renameColumn($table, $name, $newName)
{
    echo 
"    > rename column $name in table $table to $newName ...";
    
$time=microtime(true);
    
$this->getDbConnection()->createCommand()->renameColumn($table, $name, $newName);
    echo 
" done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}

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

renameTable() метод

public void renameTable(string $table, string $newName)
$table строка таблица, которую нужно переименовать. Имя будет корректно обрамлено кавычками методом.
$newName строка новое имя таблицы. Имя будет корректно обрамлено кавычками методом.
Исходный код: framework/db/CDbMigration.php#259 (показать)
public function renameTable($table, $newName)
{
    echo 
"    > rename table $table to $newName ...";
    
$time=microtime(true);
    
$this->getDbConnection()->createCommand()->renameTable($table, $newName);
    echo 
" done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}

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

safeDown() метод (доступен с версии v1.1.7)

public boolean safeDown()
{return} логический тип Возвращение false означает, что миграция не будет применена, и транзакция будет отменена.
Исходный код: framework/db/CDbMigration.php#119 (показать)
public function safeDown()
{
}

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

safeUp() метод (доступен с версии v1.1.7)

public boolean safeUp()
{return} логический тип Возвращение false означает, что миграция не будет применена, и транзакция будет отменена.
Исходный код: framework/db/CDbMigration.php#105 (показать)
public function safeUp()
{
}

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

setDbConnection() метод

public void setDbConnection(CDbConnection $db)
$db CDbConnection компонент подключения к базе данных
Исходный код: framework/db/CDbMigration.php#148 (показать)
public function setDbConnection($db)
{
    
$this->_db=$db;
}

Устанавливает текущее активное подключение к базе данных. Подключение к базе данных будет использоваться методами, такими как insert, createTable.

truncateTable() метод

public void truncateTable(string $table)
$table строка таблица, которая должна быть обнулена. Имя будет должным образом обрамлено кавычками методом.
Исходный код: framework/db/CDbMigration.php#283 (показать)
public function truncateTable($table)
{
    echo 
"    > truncate table $table ...";
    
$time=microtime(true);
    
$this->getDbConnection()->createCommand()->truncateTable($table);
    echo 
" done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}

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

up() метод

public boolean up()
{return} булево Возвращение false означает, что миграция не будет применена.
Исходный код: framework/db/CDbMigration.php#48 (показать)
public function up()
{
    
$transaction=$this->getDbConnection()->beginTransaction();
    try
    {
        if(
$this->safeUp()===false)
        {
            
$transaction->rollback();
            return 
false;
        }
        
$transaction->commit();
    }
    catch(
Exception $e)
    {
        echo 
"Exception: ".$e->getMessage().' ('.$e->getFile().':'.$e->getLine().")\n";
        echo 
$e->getTraceAsString()."\n";
        
$transaction->rollback();
        return 
false;
    }
}

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

update() метод

public void update(string $table, array $columns, mixed $conditions='', array $params=array ( ))
$table строка таблица, которая должна быть обновлена.
$columns массив данные столбцов (имя=>значение) для обновления.
$conditions смешанный тип условия, которые будут помещены в часть WHERE. Обратитесь к CDbCommand::where для уточнения условий.
$params массив параметры, которые будут привязаны к запросу.
Исходный код: framework/db/CDbMigration.php#208 (показать)
public function update($table, $columns, $conditions='', $params=array())
{
    echo 
"    > update $table ...";
    
$time=microtime(true);
    
$this->getDbConnection()->createCommand()->update($table, $columns, $conditions, $params);
    echo 
" done (time: ".sprintf('%.3f', microtime(true)-$time)."s)\n";
}

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

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CDbMigration

Spec-Zone.ru

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