Phinx — миграция базы данных в PHP

Evg Evg 21 Августа 2022

Phinx — это инструмент миграции базы данных, написанный Робом Морганом на PHP.

Phinx — это инструмент миграции

Это означает, что вы можете сообщить Phinx, что хотите создать новую таблицу базы данных, добавить столбец или отредактировать свойства столбца, написав «миграции».

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

Мне понравилось в Phinx то, что он поддерживает несколько «сред», что позволяет настраивать различные наборы учетных данных и инф. базы данных для локальной машины разработки, промежуточного сервера и рабочего сервера.

Сам использую Phinx для локального управления схемой моей базы данных с помощью XAMPP, и у меня есть конфигурации для моего сервера разработки, а также для моей производственной среды, обычно единственная разница — это имя базы данных, имя пользователя и пароль.

Когда Phinx запускает миграцию, он отслеживает, какая миграция была запущена, сохраняя эту информацию в своей собственной таблице, определяемой параметром:

default_migration_table: phinx_log

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

Выполним все доступные миграции (делаю локально):

vendor/bin/phinx migrate

vendor/bin/phinx migrate

Посмотрим статус уже выполненных миграций:

vendor/bin/phinx status

vendor/bin/phinx status

Как всё будет протекстировано, мы сделаем команду Breakpoint  — которая поставить в данном месте «точку» для отката далее.

Ресурсы:

И так: в проекте будет инструмент Phinx, который под командной строкой может управлять базой данных, и последний, актуальный (уже собранный) дамп базы данных. Нам нам учитывать и тех, кто испытывает затруднения с этой командной строкой.

2 Ответа

  1. Yori Yori 21 Августа 2022

    Думаю, необходимо документацию обновить, это важное дополнение!

    1. Evg Evg 21 Августа 2022

      Да, необходимо это добавить в документацию, а пока решить ещё один вопрос связанный с полной интеграцией (насколько это возможно) Phinx в структуру проекта. Пока он как-бы отдельно, конфиги отдельно в нём прописывать надо. Так конечно делают, многие, но надо все же, думаю, посмотреть. А далее писать в документацию отдельную статью.