2013-02-27 3 views
0

У меня есть приложение Rails 3 - это интерфейс для исследования различных проектов. Мы не хотим, чтобы исследователи случайно помещали данные Duff на сайт пользователя, поэтому мы отделили приложение, используя среду dataentry, используемую исследователями, и среду production, которая обращена к пользователю. Исследователи помещают новые данные в базу данных dataentry, которая проверяется и затем выписывается редактором; данные охватывают более 30 моделей, которые имеют различные ассоциации belongs_to и has_many.Перемещение (большое количество) данных между средами

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

Большинство решений, которые я видел для переноса данных между средами, либо включают: а) передачу данных в YAML или подобное, либо b) загрузку целых таблиц в массив Ruby, подключение базы данных к базе данных и выполнение цикла each массив, чтобы загрузить их обратно. Оба подхода кажутся субоптимальными, когда таблицы очень большие.

Я мог (предположительно) mysqldump все соответствующие таблицы от dataentry и передать результат в mysql production, но это похоже на тупой инструмент.

Есть ли какие-либо рекомендации по управлению подобным «разделением данных» в Rails?

+1

см. Http://www.rubyrep.org/ –

+0

Как насчет того, чтобы реплицировать данные из ввода данных в производство с помощью фильтра на репликацию? http://stackoverflow.com/questions/1731599/can-i-set-up-a-filtered-star-pattern-database-replication Таким образом, он всегда готов, и вам не нужно синхронизировать его навалом? – ryan1234

ответ

Смежные вопросы