-
Notifications
You must be signed in to change notification settings - Fork 0
Небольшой скрипт на php для управления миграциями в проекте. Каждая миграция описывается отдельно каждым членом команды. Новые изменения применяются в базу отдельным запуском скрипта. Поддерживается MySQL и PostgreSQL.
deadkrolik/Simple-mysql-DB-migrator
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Небольшая консольная утилита для учета изменений в базе данных. Любой запуск скрипта это всегда команда вида: php migrator.php [команды ...] Для первичного учета изменений базы введено понятие "миграция". Это специальный файл, лежащий в директории db_changes и описывающий команды для применения и отката изменений в случае неудачи их применения. Для создания такого файла необходимо выполнить следующую команду: php migrator.php create "описание миграции" Само описание это несколько слов об изменениях, на основе этой фразы и текущей даты в директории db_changes будет создан файл с классом, унаследованным от класса Stage и реализующий два метода - up и down. Метод up должен возвращать массив sql-запросов, подлежащих исполнению в миграции. Массив down должен возвращать массив точно такой же размерности, в котором содержатся запросы откатывающие изменения соответствующих запросов метода up, в точно таком же порядке. Если такого запроса нет, то метод должен возвращать массив такой же размерности из пустых строк. Таким образом, после генерации файла необходимо его отредактировать, изменив тело методов up и down. Пара слов о файлах конфигурации. Их может быть неограниченное количество и находятся они в директории config. Файл конфигурации должен содержать две обязательные секции database и options. Секция database должна содержать реквизиты для соединения с конкретной базой данных MySQL. Секция options дожна содержать поле table, в котором содержится имя служебной таблицы для миграций. По умолчанию 'migrations'. Также она может содержать массив для замен, например, префиксов таблиц, в следующем виде: replaces[что_заменяем]="на_что_заменяем" например: replaces[#__]="jos_" Если файл конфигурации не задан в командной строке, то возможны два варианта: если в каталоге config существует всего один ini-файл, то будет использован он. Если их больше, то будет использовано имя по умолчанию - "local". Для предпросмотра вносимых в базу данных изменений другими файлами миграций необходимо выполнить следующую команду: php migrator.php preview [конфиг] Имя файла конфига указывается без расширения ini. Например, просто local. Эта команда просто покажет список файлов и число SQL-запросов, еще не внесенных в служебную таблицу. Для реального исполнения запросов надо ввести следующую команду: php migrator.php up [конфиг] В случае ошибки исполнения какого-либо запроса она будет выведена, а исполнение миграций будет прервано. Будет произведена попытка откатить все запросы текущей миграции, исполненные до текущего. Для просмотра уже исполненных команд миграции необходимо выполнить команду: php migrator.php show_executed [конфиг] WWW каталог - это небольшой скрипт для исполнения в вебе команд миграции, так как консоль не всегда бывает доступна. Запуск сводится к заполнению двух полей - команды и пароля. Пароль хранится в файле config/password. Можно класть практически в любое место, главное что бы оно было не глубже чем 10 вложенных уровней, относительно всей папки скрипта миграций. Веб-скрипт сам найдет каталог с мигратором, просто поднимаясь вверх по дереву папок относительно своего начального положения. Именование папки "web_migrator" может быть любым.
About
Небольшой скрипт на php для управления миграциями в проекте. Каждая миграция описывается отдельно каждым членом команды. Новые изменения применяются в базу отдельным запуском скрипта. Поддерживается MySQL и PostgreSQL.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published