Есть два сервера: продакшн и девелоп. На продакшене после разработки надо протестить все изменения и для этого часто необходимо подтянуть бд, пока скачиваю дампы и делаю diff и заливаю изменения запросом, что не всегда удобно и занимает время.
Может кто уже с таким сталкивался и есть более быстрое решение? Также в обратную сторону тоже действует, при изменении бд на девелопе надо менять на продакшене.
Миграции не помогут, так как тут cms обычная (dle)
Миграции не помогут, так как тут cms обычная (dle)
Миграции хороши до того момента, пока у Вас однажды не случиться "абзац". К тому же миграции имеют довольно ограниченный функционал. К тому же данные они не переносят, только модификации структуры БД. В общем Вы не много потеряли в их отсутствие.
Может кто уже с таким сталкивался и есть более быстрое решение?
Есть:
1. Репликация БД Master-slave
2. Клонирование сервера БД с VM, обычно для этого используют одну из систем виртуализации, например Docker (конкретно за него не скажу, но уверен что и он так умеет)
акже в обратную сторону тоже действует, при изменении бд на девелопе надо менять на продакшене.
Это лучше делать руками всё же. Самый надёжный "дедовский" способ.
Oversec: *я ещё раз уточню, я не юзаю именно Docker, т.к. у меня обычно более "тяжелая артилерия" и чуть-чуть другая логика задач, но суть ровно ода и та же
Логика в общей сложности такая:
- Ваша БД крутится в Docker'е
- Docker - это по сути маленькая виртуальная машина, рассчитанная на 1 приложения
- Вы делаете клон вашей VM/DB, прям "на живую", это выглядит как создание снапшота диска и оперативной памяти машины, делается это обычно средствами гипервизора (штуки, которая управляет вашими виртуальными машинами), а не "руками" как можно подумать.
- Поднимаете клон вашей VM, меняете там какой-то 1 параметр (скорее всего, её IP), хотя возможно его и менять даже не придётся, просто по DHCP подтянется следующий свободный IP'шник
- Меняете где-то у себя в конфиге IP'шник базы, с которой хотите работать
- Готово :)
Евгений Вольф: спасибо за совет) попробую) немного задача отличается что конфигурация cms разная на проде и деве, а она тоже хранится в бд (так уж там устроено) и нужно подтянуть изменения в 2-ух таблицах
Oversec: не за что, рад был Вам чем-то помочь. На счёт конфигурации, довольно странный конечно момент, обычно наоборот стараются иметь полную аналогию и на деве и на проде, что бы избежать в последствии казусов, типа "на деве всё пашет, а прод сломался", и обычно такие тонкости как "включенный режим отладки" лежат в конфигах, которые не деплоятся... но, я с радостью опушу обсуждение подобных "тонкостей" (особенностей), если Вы не против :)
Евгений Вольф: Я всегда за) Вопросов много так как в проекте будет микросервисная архитектура и хочу сразу заложить хороший фундамент, а докер как раз подойдёт для этих целей
Oversec: я бы Вам порекомендовал так же посмотреть в сторону других гипервизоров, их довольно много. Vagrant, LXC/LXD, XEN, KVM, OpenVZ, VirtualBox (и другие). Выберите тот, который лучше подойдёт для ваших задач, т.к. сменить его потом будет не очень просто (хоть и возможно). Безусловно, Docker тоже может являться отличным вариантом, но мы например не редко применяем KVM. В принципе, у нас в общей сложности примерно так и построена рабочая система, туда-суда летают готовые образы с приложениями (как примерно Вы и описали), главное, не промахнуться с изначальным стеком технологий, для Вашего конкретного случая :)
Папа Стифлера: я пишу так, что бы автору вопроса было максимально понятно, какую мысль я до него пытаюсь донести. А не сдаю экзамен на корректность владения какими-то технологиями или техническую корректность. Если Вас не устраивает то, как написал я - не понимаю, что мешает написать Вам более корректно и доходчиво?