Перенос подмножеств производственных данных обратно в dev - PullRequest
3 голосов
/ 11 ноября 2010

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

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

Идеи?

Ответы [ 3 ]

2 голосов
/ 11 ноября 2010

У меня была похожая потребность, и я закончил тем, что создал плагин для этого .Он был разработан для Rails 2.x и работал нормально для меня, но в последнее время я не особо его использовал.

Документация отсутствует, но это довольно просто.Вы в основном устанавливаете плагин и затем имеете метод to_sql, доступный на всех ваших моделях.Опции объясняются в README.

Вы можете попробовать и сообщить мне, если у вас есть какие-либо проблемы, я постараюсь помочь.

2 голосов
/ 11 ноября 2010

Вы можете использовать инструмент ETL, например Pentaho Kettle .Если у вас есть начальная настройка преобразования, которую вы хотите, вы можете легко запустить ее с другими параметрами в будущем.Таким образом, вы также можете сохранить все свои ассоциации.Я написал небольшую рекламу о Пентахо для другого вопроса здесь .

Если вы предоставите приблизительную схему, я, вероятно, мог бы помочь вам начать с того, как будет выглядеть ваше преобразование.

0 голосов
/ 03 января 2011

Я бы пошел за ним, используя Rails runner скрипт. Это позволит вашему коду получать доступ к тем же вещам, что и приложение Rails, включая инициализацию базы данных. ActiveRecord сможет использовать определенные вами модельные связи.

Создайте несколько таблиц переноса в вашей производственной базе данных и скопируйте нужные данные в те, которые используют скрипт runner. Оттуда вы можете сериализовать данные или использовать инструмент дампа, так как вы будете иметь дело с уменьшенным количеством записей. Повторите процесс в среде разработки, чтобы переместить данные в базу данных.

Мне нужно было заполнить базу данных в одном из моих приложений из удаленных веб-журналов и я написал сценарий запуска, который периодически запускался через cron, передавал данные с моего сайта и вставлял данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...