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

时间:2012-08-29 04:36:02

标签: python django postgresql heroku

我正在将MySQL数据库移植到Heroku托管的专用PostgreSQL实例。我知道如何将初始数据传递给Heroku。但是,每天需要导入外部公司的数据的“馈送”。它被推送到FTP服务器,它是一个包含几个不同CSV文件的zip文件。通常情况下,我可以/只是将其翻到Postgres框,然后有一个cron作业执行“COPY tablename FROM path / to / file.csv”来导入数据。然而,使用Heroku让我有点困惑的是最好的方法来做到这一点。注意:我在导入数据时看到并查看了heroku dev article。但是,这更像是一个转储文件。我只是处理CSV文件中的每日导入。

有没有人在Heroku上做类似的事情?如果是这样,你能就什么是最好的方式提出任何建议。

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

1 个答案:

答案 0 :(得分:1)

两个选项:

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

  2. 文件有多大?它可能适合dyno的短暂文件系统,因此一个进程或一个off作业可以从FTP服务器下载文件并从dyno中完成整个过程。一旦进程退出,就会离开文件系统数据。