simple migration module on pure sql
Есть основной класс SimpleMigration
, ответственный за миграции, именно его
будет использовать внешний код
SimpleMigration
:
- Получает как параметры конструктора: авторизационную строку БД, логин, пароль, путь к папке с миграциями
У каждой миграции есть поддиректория
ДиректорияМиграций/
|
|--- Миграция1/
|--- Миграция2/
Имя поддиректории миграции состоит из timestamp_человеческоеИмя
Пример - если дали имя:
user settings
преобразуется в (фактическоеИмяМиграции):
34523546547_user_settings/
В каждой поддиретории миграций находятся два файла:
-
- Файл наката
-
- Файл отката
Пример их имен в месте с именем диретории миграций:
34523546547_user_settings/user_settings.up.sql
34523546547_user_settings/user_settings.down.sql
TODO:
- Реализовать метод
Migration::getName($sourceName)
- и написать тест на него юнит-тест
Migration::getUpName($sourceName)
+ юнит-тест- Определить наличие таблицы в БД без исключения (подобрать подходящий SQL запрос)