Развертывание базы данных с помощью MySQL и Capistrano

Я настроил Capistrano и теперь использую его для развертывания на промежуточных и рабочих серверах, что значительно улучшило мой рабочий процесс разработки. Теперь мне интересно, как лучше всего справиться с развертыванием базы данных. У меня была Liquibase, которая выглядит хорошо, но я пока не совсем уверен, какой подход лучше всего. Должен ли я синхронизировать данные с живых серверов с промежуточными серверами и серверами разработки, чтобы они были правильными клонами живого сайта? Кроме того, будут ли изменения схемы, как правило, тем типом вещей, которые будут версионироваться и развертываться для промежуточной/живой работы? Будем признательны за любые указатели на передовую практику и то, что вы, ребята, делаете. Должен добавить, что в основном я работаю с базами данных MySQL.


person bsod99    schedule 22.11.2012    source источник


Ответы (1)


Liquibase на самом деле не предназначена для «синхронизации» производственной базы данных со средой разработки. Вместо этого он предназначен для отслеживания всех изменений в среде разработки, чтобы их можно было точно воспроизвести в рабочей среде.

Сказав, что liquibase содержит несколько мощных инструментов для извлечения и сравнения баз данных друг с другом. Однако эта функциональность предназначена для поддержки инициализации нового проекта или обнаружения отсутствующего «набора изменений», который можно добавить в существующий проект для «синхронизации» двух баз данных.

Лучший способ открыть для себя Liquibase — это попробовать. Для ваших целей вы будете смотреть на реализацию командной строки. (Если вы хотите внедрить liquibase в Capistrano, все, что вам нужно, это jar liquibase и jar JDBC, связанные с вашей базой данных.)

PS

Ниже приведен пример сравнения двух баз данных в liquibase:

person Mark O'Connor    schedule 22.11.2012