2011-02-13 25 views
1

在我們支持的其中一個應用程序中,我們需要爲銷售人員提供用於演示和銷售的「實際演示數據」。優化演示數據的重置

我們目前有一個復位每天一次這個演示數據rake任務,但它真的很低效的和緩慢的(大約需要5 - 10分鐘通過運行)

肯定有辦法,我可以優化代碼產生的演示數據(我打算這樣做),但我認爲有可能是一個更好的方法來做到這一點...

我希望做的是抓住輸出重置(即抓取原始SQL)。我希望能夠這樣做,我可以做一個計劃任務,每天將演示數據直接重置到數據庫,而不必加載整個Rails環境並執行一堆ruby方法。

這樣,當演示數據的性質改變(這種情況非常少見)以更新我的SQL時,我只能運行緩慢的任務。

這是最好的方法嗎?我如何以一種很好的格式抓取SQL?

回答

1

這似乎是一個很好的解決方案!如果你沒有任何資產,簡單地做一個轉儲a.e.在 MySQL的

mysqldump -uUSER -pPASSWORD [other params] DATABASE > yourdumpfile.sql 

,並恢復

mysql -uUSER -pPASS DATABASE < yourdumpfile.sql 

here,你可以使用一個有用的rake任務。 bye

+0

很高興知道!我唯一關心的是它是一個真實數據的實時生產數據庫。我可以只爲數據的一個子集進行轉儲/恢復嗎? (即我的演示環境用戶) – 2011-02-16 02:03:28

0

我不能說你的問題,但是你的耙子任務使用一些軌道創建數據的具體方式?例如,像faker這樣的寶石?我會回答假設你是。

如果你想保存和重新運行faker(或類似的)創建的sql,那麼我會說這是一個壞主意。你說數據很少改變,所以在那些極少數情況下只需使用你的rails環境。

但是,一旦您獲得了所需的數據,就需要使用@andrea建議的內容並轉儲數據並將其恢復。