每天导入Heroku托管的Postgres数据库



我正在将MySQL数据库移植到Heroku托管的专用PostgreSQL实例。我知道如何将初始数据传递给Heroku。然而,每天都有一个来自外部公司的数据"提要",需要每天导入。它被推送到FTP服务器,是一个包含几个不同CSV文件的zip文件。通常,我可以/只需要将它scp到Postgres框中,然后有一个cron作业,它会执行"COPY tablename FROM path/to/file.csv"来导入数据。然而,使用Heroku让我有点困惑,不知道最好的方法是什么。注意:我已经看过并复习了heroku-dev关于导入数据的文章。但是,这更像是一个转储文件。我只是处理一个CSV文件的日常导入。

有人在Heroku上做过类似的事情吗?如果是的话,你能就什么是最好的方法给出建议吗。

更多信息:我的应用程序是Cedar堆栈上的Python/Django 1.3.3。我的文件可能有点大。其中一些可能超过5万张唱片。因此,循环使用它们并使用Django ORM可能会有点慢(但仍然可能是最好/唯一的解决方案)。

两个选项:

  1. 启动一个非heroku EC2实例,从FTP获取,解压缩并从那里启动拷贝。通过使用COPY STDIN选项(http://www.postgresql.org/docs/9.1/static/sql-copy.html)您可以指示它数据来自客户端连接,而不是来自服务器文件系统上您无法访问的文件。

  2. 这个文件有多大?它可能适合dyno的临时文件系统,因此进程或一次性作业可以从FTP服务器下载文件,并在dyno中完成整个过程。一旦进程退出,文件系统数据就会消失。

最新更新