Копирование массивной базы данных для локального ruby ​​по разработке рельсов? - PullRequest
1 голос
/ 14 мая 2010

Существует огромная база данных (ГБ), с которой я сейчас работаю, и все предыдущие разработки были выполнены на слайсе. Я пытаюсь подготовиться к тому, чтобы к работе присоединилось больше разработчиков, поэтому мне нужно, чтобы каждый мог настроить свой собственный компьютер для разработки, что означает потенциальное копирование этой базы данных. Выбор только первых X строк в каждой таблице для сокращения размера может быть проблематичным для согласованности данных. Есть ли способ обойти это, или 1 час загрузки для каждого разработчика будет необходимо? И, кроме того, что, если в будущем мне нужно будет скопировать рабочую базу данных для целей разработки?

С уважением, Тайлер

Ответы [ 4 ]

2 голосов
/ 14 мая 2010

баз данных, необходимых для разработки и тестирования, редко нуждаются в полном размере, часто легче работать с маленькой копией. Инструмент поднабора базы данных, такой как Jailer (http://jailer.sourceforge.net/), может помочь вам здесь.

1 голос
/ 14 мая 2010

Почему бы не иметь сервер разработки, к которому подключается каждый разработчик?

Да, все разработчики работают с одной и той же базой данных.Разработка никогда не производится, за исключением сценариев, которые проверены в Subversion.Если пара людей, вносящих изменения, сталкиваются друг с другом, тем лучше, что они как можно скорее узнают, что они делают вещи, которые могут конфликтовать.

Мы также периодически загружаем резервную копию prod в dev и перезапускаем любуюскрипты для вещей, которые еще не были загружены в prod, чтобы держать данные в актуальном состоянии.Разработка с использованием полного набора данных имеет решающее значение, если у вас есть база данных среднего размера, потому что методы кодирования, которые кажутся хорошими для разработчика на коробке с меньшим набором данных, часто ошибочно приводят к ошибкам в отношении данных размера продукта и при наличии несколькихпользователи.

0 голосов
/ 30 ноября 2011

В случае, если кто-то заинтересован в ответе на вопрос «как копировать данные между базами данных», я нашел это:

http://justbarebones.blogspot.com/2007/10/copy-model-data-between-databases.html

Он ответил на вопрос, который я задал, когда нашел этот S.O. вопрос.

0 голосов
/ 14 мая 2010

Чтобы сделать загрузку производственной базы данных более эффективной, убедитесь, что вы максимально сжимаете ее перед передачей, и, кроме того, вы удаляете все записи, не относящиеся к разработке.

Вы также можете создать патч для более старой версии дампа базы данных, чтобы пересылать только различия, а не совершенно новую его копию. Это работает лучше всего, когда каждый оператор INSERT записывается по одному на строку, что может потребоваться для вашего инструмента. В MySQL это опция --skip-extended-insert.

Лучшим подходом является создание ложного генератора данных, который может развернуть достаточно надежную версию базы данных для тестирования и разработки. Это не так уж сложно сделать с такими вещами, как Factory Girl , которые могут автоматизировать рутинное создание записей.

...