Оглавление
- Вступление
- Подключение расширения
- Создать расширенную миграцию
- Параметр --module=<modulename>
- Применить миграцию
- Откатить миграцию
- Список команд для работы с миграциями
- Дополнительные материалы
Вступление
Ниже описывается подключение и использование расширения, которое дополняет стандартное использование миграций на Yii1 некоторыми нужными инструментами, например, централизованное использование миграций в подключаемых модулях. Вся информация о модуле, который мы будем использовать находится здесь https://github.com/yiiext/migrate-command
Подключение расширения
Подключение может, например, производится в файле /protected/config/console.php. Мы же миграции будем из консоли запускать. Так же следует помнить что если вы использовали миграции перед подключением этого модуля, то следует убедится что в таблицу, в которой хранятся миграций добавлен столбец „module“. Если нет то добавить:
ALTER TABLE `tbl_migration` ADD COLUMN `module` varchar(32) DEFAULT NULL;
UPDATE `tbl_migration` SET module='core';
'commandMap' => array( // Здесь может быть подключение каких-то модулей 'migrate' => array( // псевдоним директории, в которую распаковано расширение 'class' => 'application.extensions.improved-migrate.EMigrateCommand', // путь для хранения общих миграций 'migrationPath' => 'application.migrations', // имя таблицы с версиями 'migrationTable' => 'tbl_migration', // имя псевдомодуля для общих миграций. По умолчанию равно "core". 'applicationModuleName' => 'core', // определяем все модули, для которых нужны миграции // (в противном случае, модули будут взяты из конфигурации Yii) 'modulePaths' => array( 'module1' => 'application.modules.module1.migrations', 'module2' => 'application.modules.module2.migrations', 'module3' => 'application.modules.module3.migrations', ), // можно задать имя поддиректории для хранения // миграций в директории модуля // 'migrationSubPath' => 'migrations', // отключаем некоторые модули /* 'disabledModules' => array( 'gii', 'admin', // ... ), */ // название компонента для подключения к базе данных 'connectionID' => 'db', // алиас шаблона для новых миграций // 'templateFile'=>'application.db.migration_template', ), // Здесь тоже может быть подключение каких-то модулей ),
Создать расширенную миграцию
Если мы подключили модуль и разрешили использовать миграции для данного модуля в файле конфигурации консольного приложения, то создать миграцию можно так:
php yiic migrate create modulename create_user_table
Параметр --module=<modulename>
Далее во всех командах (up, down, history, new, to, mark) можно использовать параметр --module=<modulenames>, где <modulenames> может быть ограничивающим текущую команду списком имён модулей через запятую, или одним именем модуля, для которого нужно применить миграцию.
Применить миграцию
php yiic migrate --module=module1
php yiic migrate up [step] --module=module2,module3
Откатить миграцию
php yiic migrate down --module=module1
php yiic migrate down [step] --module=module2,module3
параметр [step] не обязательный, он задаёт количество миграций, которые надо откатить. По умолчанию откатывается последняя миграция.
Список команд для работы с миграциями
up [step] - Применение миграций
down [step] - Откат миграций
redo [step] - Повторное применение миграций
history [limit] - Просмотр информации о миграциях
new [limit] - Просмотр информации о не применённых миграциях
mark migration-name - Иногда требуется изменить историю миграций так, чтобы текущая версия была заменена на указанную без применения или отката миграций.
Дополнительные материалы
http://www.yiiframework.com/doc/guide/1.1/ru/database.migration
Оставить комментарий
Оставить комментарий могут только зарегистрированные пользователи