Некоторое время назад я написал приложение Zend Framework 3 с MySQL 5.7
и Doctrine 2
.
Обновление схемы базы данных и «управление версиями» было / является «управляемым моделью данных».Означает: всякий раз, когда требуется обновить схему, сначала изменения вносятся в модель в MySQL Workbench.После этого базы данных во всех средах синхронизируются с моделью с использованием соответствующей функциональности MySQL Workbench.Последнее (но не в последнюю очередь): схема для тестов базы данных затем обновляется вручную.
(Сегодня все это немного сбивает с толку, но когда я писал приложение, оно, похоже, былохороший подход ...)
Теперь я хочу перейти на миграцию.Я знаю, как использовать (настраивать, создавать, писать и т. Д.) Миграции.Это не вопрос.Вопрос:
Как переключить на миграцию в контексте существующего приложения и базы данных?
DR; TL
Мой план:
Первым и, возможно, наиболее трудоемким шагом, очевидно, будет настройка новой базы данных:
- Созданиеструктура: мне нужно создать миграции для существующей структуры.Это должны быть миграции на основе PHP-кода (и не простой SQL), поэтому я могу использовать их позже для тестовой базы данных (поскольку я хочу иметь возможность запускать тесты в SQLite / в памяти).
- Вставка основныхданные в базу данных приложения.
- Вставка основных данных теста в базу данных теста.
Вот и все.Или нет?Есть вещи, которые я не рассматриваю?Есть какие-то скрытые трудности, любой камень преткновения?