Инструменты пользователя

Инструменты сайта


limb3:ru:packages:migrate

Пакет Migrate

:!: Пакет находится в инкубаторе. Для использования его полного функционала необходимо перенести содержимое папки migrate в папку с пакетами limb.

Пакет представляет из себя систему контроля версий SQL Баз Данных. Новые изменения Базы Данных сохраняются в файлы (миграции) в виде SQL запросов ALTER/CREATE.

В связке с проектом пакет удобно использовать по средствам утилиты limb.php

Задачи пакета Migrate

ТегОписаниеЗависимости
Расположение: limb/migrate/cli/migrate.inc.php
migrate_init_config Init project config. Creates migrate.conf.php in project/settings dir. By default:
DSN: used project db.conf.php
Schema: project_dir/init/migrate/schema.sql
Data: project_dir/init/migrate/data.sql
Migrations: project_dir/init/migrate/migrations/
migrate_init Init project migration: create dump files and sets version 1 migrate_init_config
migrate_dump_all Dump schema and data migrate_init_config
migrate_dump_schema Dump schema migrate_init_config
migrate_dump_data Dump data migrate_init_config
migrate_load_all Load schema and data migrate_init_config
migrate_create Create new migration file (using diff) migrate_init_config
migrate_run Apply new migration file(s) migrate_init_config
migrate_dryrun Test new migration file(s) migrate_init_config

Workflow системы миграций

1. Инициализация

Для начала вам необходимо инициализировать систему миграций:

limb.php migrate_init

Процедура создаст в вашей БД таблицу schema_info содержащую одну единственную запись с номером версии схемы. И сохранит начальные дампы по путям указаным в конфиге settings/migrate.conf.php (если отсутствует, - то создается автоматически запускаемой процедурой migrate_init_config)

2. Создание миграции

Теперь, если новый код вашего проекта требует изменения базы данных, вы можете вносить изменения в вашу локальную БД (сервер разработки). Когда код и новая схема БД отлажены вам необходимо создать новую миграцию:

limb.php migrate_create

Система спросит у вас имя миграции в интерактивном режиме. Будет создан файл с SQL кодом миграции и именем файла в формате <номер_версии>_<имя_миграции>.sql . Соответственно имя миграции должно соответствовать правилам именования файлов вашей ФС. Идентификатор версии схемы БД будет обновлен до версии вашей новой миграции.

До создания файла миграции можно посмотреть что будет включено в его содержимое по средствам процедуры diff:

limb.php migrate_diff

Когда файл миграции создан вы можете включить его в состав коммита с кодом работающим с этой версией БД.

3. Применение миграции

Другой разработчик получив из репозитория вашу новую версию проекта (вместе с файлом миграции) должен применить её при помощи процедуры run.

limb.php migrate_run

Процедура применяет все миграции версии которых «свежее» установленной в данный момент схемы.

Вы можете запустить процедуру применения новой миграции «в сухую».:

limb.php migrate_dryrun

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

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
 __  __   ___    ___   _   __     __
 \ \/ /  / _ \  / _ \ | | / / __ / /
  \  /  / , _/ / // / | |/ / / // / 
  /_/  /_/|_| /____/  |___/  \___/
 
limb3/ru/packages/migrate.txt · Последние изменения: 2010/11/10 10:02 (внешнее изменение)