Я настроил Capistrano и теперь использую его для развертывания на промежуточных и рабочих серверах, что значительно улучшило мой рабочий процесс разработки. Теперь мне интересно, как лучше всего справиться с развертыванием базы данных. У меня была Liquibase, которая выглядит хорошо, но я пока не совсем уверен, какой подход лучше всего. Должен ли я синхронизировать данные с живых серверов с промежуточными серверами и серверами разработки, чтобы они были правильными клонами живого сайта? Кроме того, будут ли изменения схемы, как правило, тем типом вещей, которые будут версионироваться и развертываться для промежуточной/живой работы? Будем признательны за любые указатели на передовую практику и то, что вы, ребята, делаете. Должен добавить, что в основном я работаю с базами данных MySQL.
Развертывание базы данных с помощью MySQL и Capistrano
Ответы (1)
Liquibase на самом деле не предназначена для «синхронизации» производственной базы данных со средой разработки. Вместо этого он предназначен для отслеживания всех изменений в среде разработки, чтобы их можно было точно воспроизвести в рабочей среде.
Сказав, что liquibase содержит несколько мощных инструментов для извлечения и сравнения баз данных друг с другом. Однако эта функциональность предназначена для поддержки инициализации нового проекта или обнаружения отсутствующего «набора изменений», который можно добавить в существующий проект для «синхронизации» двух баз данных.
Лучший способ открыть для себя Liquibase — это попробовать. Для ваших целей вы будете смотреть на реализацию командной строки. (Если вы хотите внедрить liquibase в Capistrano, все, что вам нужно, это jar liquibase и jar JDBC, связанные с вашей базой данных.)
PS
Ниже приведен пример сравнения двух баз данных в liquibase: