Слияние данных разработки в производственные данные - PullRequest
0 голосов
/ 01 апреля 2011

Мы развернули приложение на прошлой неделе. Проблема в том, что у нас есть некоторые данные для разработки, которые мы хотели бы перенести в рабочую среду, но производственная база данных уже используется. Так что простой импорт и экспорт SQL создаст проблему, из-за которой идентификаторы больше не будут совпадать.

Теперь я подумал о том, чтобы загружать все данные в базовые объекты, но такого базового объекта не существует. Существует четыре объекта с только ассоциациями has_many и множество объектов с несколькими ассоциациями принадлежат.

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

Ответы [ 2 ]

0 голосов
/ 01 апреля 2011

Экспорт данных разработки в формате CSV, yaml, XML или любого другого формата, который вы хотите использовать для этого.Затем у вас есть выбор, что делать:

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

Загрузите данные, используя консоль (создание скриптов / консолей) и ввод команд вручную.Это может быть более удачным способом, поскольку вы можете исследовать поступающие данные и корректировать их по мере необходимости.

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

0 голосов
/ 01 апреля 2011

Одним из способов может быть выгрузка данных dev в yaml ( этот плагин делает это и, возможно, есть другие, которые добьются цели), а затем используйте db / seed.rb для написания загрузки скрипта его содержимое и использование моделей rails для воссоздания их на производственной базе данных с помощью rake db: seed

rake db: seed не будет обрабатывать ваши данные (он просто загружает db / seed.rb, см. Источник здесь и здесь ), но обязательно сделайте резервную копию ваших данных прежде чем что-нибудь :)

Я бы посоветовал поиграть с песочницей и клоном db, прежде чем приступить к работе на производстве.

...