Пакет находится в инкубаторе. Для использования его полного функционала необходимо перенести содержимое папки migrate в папку с пакетами limb.
Пакет представляет из себя систему контроля версий SQL Баз Данных. Новые изменения Базы Данных сохраняются в файлы (миграции) в виде SQL запросов ALTER/CREATE.
В связке с проектом пакет удобно использовать по средствам утилиты limb.php
Тег | Описание | Зависимости | ||
---|---|---|---|---|
Расположение: 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 |
Для начала вам необходимо инициализировать систему миграций:
limb.php migrate_init
Процедура создаст в вашей БД таблицу schema_info содержащую одну единственную запись с номером версии схемы. И сохранит начальные дампы по путям указаным в конфиге settings/migrate.conf.php (если отсутствует, - то создается автоматически запускаемой процедурой migrate_init_config)
Теперь, если новый код вашего проекта требует изменения базы данных, вы можете вносить изменения в вашу локальную БД (сервер разработки). Когда код и новая схема БД отлажены вам необходимо создать новую миграцию:
limb.php migrate_create
Система спросит у вас имя миграции в интерактивном режиме. Будет создан файл с SQL кодом миграции и именем файла в формате <номер_версии>_<имя_миграции>.sql . Соответственно имя миграции должно соответствовать правилам именования файлов вашей ФС. Идентификатор версии схемы БД будет обновлен до версии вашей новой миграции.
До создания файла миграции можно посмотреть что будет включено в его содержимое по средствам процедуры diff:
limb.php migrate_diff
Когда файл миграции создан вы можете включить его в состав коммита с кодом работающим с этой версией БД.
Другой разработчик получив из репозитория вашу новую версию проекта (вместе с файлом миграции) должен применить её при помощи процедуры run.
limb.php migrate_run
Процедура применяет все миграции версии которых «свежее» установленной в данный момент схемы.
Вы можете запустить процедуру применения новой миграции «в сухую».:
limb.php migrate_dryrun
В этом случае процедура создаст временную БД с схемой вашей БД, попытается применить к ней новые миграции и сообщит о возможных ошибках.