【发布时间】:2011-03-21 17:45:59
【问题描述】:
目标:使用 CRON 任务(或其他预定事件)更新数据库,每晚从现有系统导出数据。
所有数据都在现有系统中创建/更新/删除。该网站不直接与该系统集成,因此 rails 应用程序只需要反映数据导出中出现的更新。
我有一个包含约 5,000 种产品的 .txt 文件,如下所示:
"1234":"product name":"attr 1":"attr 2":"ABC Manufacturing":"2222"
"A134":"another product":"attr 1":"attr 2":"Foobar World":"2447"
...
所有值都是用冒号 (:) 分隔的双引号 (") 括起来的字符串
字段是:
-
id:唯一标识;字母数字 -
name:产品名称;任何字符 - 属性列:字符串;任何字符(例如,大小、重量、颜色、尺寸)
-
vendor_name:字符串;任何字符 -
vendor_id:唯一的供应商 ID;数字
供应商信息在当前系统中没有规范化。
这里有哪些最佳做法?是否可以删除产品和供应商表并在每个周期使用新数据重写?还是只添加新行并更新现有行更好?
注意事项:
- 此数据将用于生成
Orders,该数据将通过夜间数据库导入持续存在。OrderItems需要连接到数据文件中指定的产品 ID,因此我们不能依赖自动递增的主键来确保每次导入都相同;需要使用唯一的字母数字 ID 将products连接到order_items。 - 理想情况下,我希望进口商标准化供应商数据
- 我不能使用普通 SQL 语句,所以我想我需要编写一个
rake任务才能使用Product.create(...)和Vendor.create(...)样式语法。 - 这将在 EngineYard 上实现
【问题讨论】:
标签: ruby-on-rails ruby import cron rake