Опишите как у вас происходит деплой базы данных.
1. Если структура не изменялась и выкатываются только новые данные.
2. Если да изменилась структура. (UPD: В этом случае вначале будут использованны миграции, это я понимаю, но как сами данные в боевую базу прилетят?)
Или покритикуйте мой сегодняшний подход.
Домашний проект. Фигачу в одно лицо, на PHP.
Я сейчас делаю вручную. Делаю дамп QA базы данных, заливаю этот дамп в базу которой пользуется стейджинг, если все прошло нормально, в конфиге nginx меняю местами стейджинг и прод, так что стейджинг становится продакшеном, а продакшен стал стейджингом.
Кому не нужно? )
Есть боевая база, есть ежедневно наполняемая тестовая база. Мне нужно данные перенести из тестовой в боевую. Из того что я знаю про миграции, они в таком случае ни чем не помогают. Или я не прав?
>если в бд вносятся кучей, то стоит сделать отдельный модуль который будет таким заниматься, но к бд напрямую ето не имеет никакого отношения
Вот и я было ломанулся программировать, но как известно меньшекода - меньше багов. Подумал что может есть какие готовые инструменты. Или как вариант репликация базы меня спасет.
> в тестойвой бд не могут находится актуальные данные
Ерунда какая. Данные же разные бывают, не только личные данные пользователей.
Мои данные это цены и описания товаров. Собираемые со сторонних сервсов. Почему я не могу обновить сначала QA базу, посмотреть что все нормально обновилось и только после этого выкатаить все на прод?
Да, мой совет - если заливка данных будничное событие - пилим модуль в котором идет валидация данных и включение их в работу в текущую боевую бд
С репликацией все усложнится в разы - придется следить за консистентностью самому, возможно, даже вручную = ад
Тебе стоит выяснить как твоя бд поддерживает консистентность внутри себя и подумать как ты можешь использовать механизм транзакций = например, провести весь импорт в одной транзакции и если произойдет ошибка при импорте откатить транзакцию и не повредить бд
Вы про миграции? Да я это знаю. До сих пор не умею ползоваться именно по тому что за пол года разработки не разу не изменил структуру базы данных.
Меня больше интересует вопрос для измененых или новых данных в базе, допустим структура не поменялась или даже поменялась. Что я должен делать после применения миграции? Как новые данные залить в базу?