@magary4

Как организовать синхронизацию данных БД между разработчиками в период разработки?

Вопрос актуальности кода у всех девелоперов решается системами контроля версий.
Целосность структуры БД миграциями.
А вот как быть с данными?
Ну вот разработчик сделал новую фитчу. В процессе тестирования он создал некое количество записей в бд. Какие-то новые обьекты и еще куча рилейтед данных.
Если он просто сделает пуш своих кодов то его фитчу никто не увидит.
Какие есть инструменты для решающие эту проблему?
  • Вопрос задан
  • 482 просмотра
Решения вопроса 2
А что мешает добавить данные в миграцию?
Ответ написан
1) соглашусь с Алексей Николаев , если данных немного, и это именно development-данные (т.е. тестовые наборы данных), то миграции подойдут как нельзя лучше;
2) если же все-таки речь идет о живых данных, то у Оракла есть Oracle Workspace Manager, который отвечает на ваш вопрос "как быть с данными?". Разумеется это компонент Oracle Database, о самостоятельных open-source решениях аналогах не слышал.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
c3gdlk
@c3gdlk
Ментор в http://rubyboost.ru/
Для наполнения базы тестовыми данными в рельсе используются сиды. Только их код пишется так, чтобы не просто пытались засунуть данные в базу, а перед этим поискать аналогичные. Если данные слишком сложные - те же сиды, но сами значения хранятся в YML файлах в какой-нибудь папке db/fixtures.

Если и этого не хватает - можно посмотреть в сторону https://github.com/harrystech/seed_migration

Еще можно писать rake таски типа db:populate:feature_name - такой подход позволит наполнять базу только нужными данными. Ну и соответсвенно будет один общий таск, который прогонит все populate
Ответ написан
Комментировать
MaxDukov
@MaxDukov
впишусь в проект как SRE/DevOps.
ну пуште заодно и инсерт-скрипты. Репликация, что-то мне подсказывает, тут будет только мешать.
Ответ написан
Комментировать
Gambala
@Gambala
Дзен-разработчик
Используйте seeds.rb, а не миграции. Так как миграции придется запускать и на продакшн-сервере, а у вас стоит задача обмениваться данными только среди разработчиков.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы