我有一個導入實用程序,我想用它來在heroku上創建記錄。在heroku rake任務期間加載本地文件
我想用它來從我的開發機器上的文件導入數據,而不必將文件檢入到存儲庫中。有沒有辦法用rake任務或heroku gem來做到這一點?
我可以上傳文件的網頁形式,可以超時,或者我可以將文件存儲在S3上,但這似乎相當過分。
任何簡單的方法來做到這一點?
我有一個導入實用程序,我想用它來在heroku上創建記錄。在heroku rake任務期間加載本地文件
我想用它來從我的開發機器上的文件導入數據,而不必將文件檢入到存儲庫中。有沒有辦法用rake任務或heroku gem來做到這一點?
我可以上傳文件的網頁形式,可以超時,或者我可以將文件存儲在S3上,但這似乎相當過分。
任何簡單的方法來做到這一點?
不,不可能從任何運行heroku run
(包括rake任務,假設你在雪松上)的任何東西訪問開發計算機上的本地文件。
我已經採取以下的方法:
種子數據存儲在回購和加載使用seed_fu
非種子數據被通過網絡的形式上載到S3,和聯到DataFile
模型使用回形針(有點矯枉過正,但我用它在其他地方的圖像)。然後,我可以使用rake任務或延遲的工作人員來處理這些文件。這絕對是一個開銷。
您可以從您的機器上的標準讀取。
heroku run rake whatever <./file
我發現一個非常簡單的方法是使用gist作爲輸入數據。您將數據複製並粘貼到要點中,然後將鏈接傳遞給原始要點作爲您的耙子任務的參數。然後在rake任務中打開遠程文件。
例如,如果要加載YAML文件:
YAML.parse(open(file_name)).to_ruby.with_indifferent_access
什麼是對任務定義中訪問該文件數據的語法? – zrisher 2016-02-06 00:46:25
'$ stdin.read'適合我。 – dojosto 2016-06-23 19:43:50