horba / pineapple

Twitter replica project
MIT License
1 stars 0 forks source link

мигратор для струкуры БД #6

Closed demosglok closed 6 years ago

demosglok commented 7 years ago

Разработать отдельный проект (консольную утилиту) которая будет выполнять миграции - изменения структуры БД. для того что б все изменения структуры оставались в дереве исходников в системе контроля версий.

выглядит как программа, которая проходит по массиву миграций (об этом ниже) и для каждой миграции проверяет, она уже была применена , или нет. если не была - то применяет ее

каждая миграция - это отдельный класс где есть один метод Apply (применить) в котором написаны запросы SQL на изменение структуры БД (добавление, изменение или удаление таблиц, колонок) и метод Revert который возвращает все как было (удаляет добавленные колонки, таблицы и т.п.)

проверять что миграция применена можно например храня список всех примененных миграцией в одной служебной табличке и сверяясь с ней каждый раз. ну и после применения миграции добавлять в эту табличку запись с id миграции.

Markiz9999 commented 6 years ago

Вопрос, как осуществлять откат изменений? Необходимо сделать при запуске программы выбор: применить все, или откатить все изменения до такой то даты? Или нужно осуществлять откат как то по другому?

demosglok commented 6 years ago

откат на 1 шаг осуществляется. если надо на больше шагов, то