目標:使用CRON任務(或其他預定事件)通過夜間從現有系統導出數據來更新數據庫。如何編寫Rake任務以將數據導入Rails應用程序?
在現有系統中創建/更新/刪除所有數據。該網站不直接與此係統集成,因此rails應用程序只需反映出現在數據導出中的更新。
我有一個.txt
文件〜5000的產品,看起來像這樣:
"1234":"product name":"attr 1":"attr 2":"ABC Manufacturing":"2222"
"A134":"another product":"attr 1":"attr 2":"Foobar World":"2447"
...
所有值都包含在由冒號(:
)
字段是分開的雙引號("
)字符串:
id
:unique id;字母數字name
:產品名稱;任何字符- 屬性列:字符串;任何字符(例如,尺寸,重量,顏色,尺寸)
vendor_name
:string;任何字符vendor_id
:唯一的供應商ID;數字
當前系統中的供應商信息未標準化。
這裏有什麼最佳實踐?是否可以刪除產品和供應商表格並在每個週期用新數據重寫?或者只添加新行並更新現有行更好?
注:
- 這些數據將被用來生成
Orders
將通過夜間數據庫進口持續。OrderItems
將需要連接到數據文件中指定的產品id,因此我們不能依賴於自動遞增主鍵對於每個導入都是相同的;需要使用唯一的字母數字ID加入products
至order_items
。 - 理想情況下,我想進口商正常化賣方數據
- 我不能用香草的SQL語句,所以我想我需要爲了使用
Product.create(...)
和Vendor.create(...)
風格的語法來寫rake
任務。 - 這將在EngineYard的
我試過,但我得到的錯誤'未定義的局部變量或方法「數據」主:Object'。任何想法,爲什麼這可能會發生? – Nick 2012-04-13 22:35:43
問題是'命名空間數據'必須改爲'名稱空間:數據操作'。 – Nick 2012-04-16 15:51:20