2015-07-07 3 views
0

Мне нужно реализовать функцию экспорта дельты для существующего приложения rails. Экспорт Delta означает, что все данные экспортируются только один раз. Например. Я экспортирую все данные сегодня, когда я снова экспортирую завтра, будут экспортированы только новые данные после последнего экспорта.Delta экспортирует данные в приложение для рельсов?

Есть ли драгоценный камень или вообще хорошее решение для этого?

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

Любые идеи?

+0

Можете ли вы объяснить, какие данные вы говорите, и что вы подразумеваете под его экспортом? Вы имеете в виду, например, SQL-дамп, или что? Также, когда вы говорите «новые данные», вы имеете в виду «измененные данные», то есть «новые или обновленные записи»? Если он обновлен, вы хотите экспортировать всю партию или просто изменения? etc –

+0

Если вы создали таблицу, у нее не было бы одной строки - она ​​имела бы одну строку для * каждый раз, когда вы делали экспорт *. –

+0

Я имею в виду экспорт в CSV-файл, который должен быть импортирован в другую систему. Заказы будут экспортироваться, которые не меняются после их создания, а значит, только новые данные. – Cojones

ответ

1

Я хотел бы сделать таблицу следующим образом:

create_table :data_exports do |t| 
    t.datetime :exported_at 
end 

с соответствующей моделью DataExport.

Тогда я сделал бы задачу грабли, которые

а) экспортирует все записи из необходимых таблиц, с условием, как where(["updated_at > ?", DataExport.last.exported_at])

б) делает DataExport.create (: exported_at => Time.now)

+0

Спасибо за ответ! – Cojones

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