我有一个导入实用程序,我想用它来创建heroku上的记录。
我想用它来从我的开发机器上的文件导入数据,而不必将文件检入存储库。有没有办法用rake任务或heroku gem来做到这一点?
我可以将文件上传到可能超时的网络表单中,或者我可以将文件存储在S3上,但这似乎相当过分。
这么简单吗?
答案 0 :(得分:6)
您可以在自己的机器上阅读标准输入。
heroku run rake whatever <./file
答案 1 :(得分:2)
不可以,使用heroku run
(包括rake任务,假设您使用雪松)运行的任何内容都无法访问开发计算机上的本地文件。
我采取了以下方法:
种子数据存储在repo中并使用seed_fu
非种子数据通过网络表单上传到S3,并使用回形针链接到DataFile
模型(有点矫枉过正,但我将其用于其他地方的图像)。然后我可以使用rake任务或延迟的作业工人来处理文件。这绝对是一个开销。
答案 2 :(得分:2)
我发现一个非常简单的方法就是将gist用于输入数据。您将数据复制并粘贴到gist中,然后将链接作为rake任务的参数传递给raw gist。然后在rake任务中打开远程文件。
例如,如果要加载yaml文件:
YAML.parse(open(file_name)).to_ruby.with_indifferent_access