我创建了一个rake任务来导入一个。csv文件到我的postgresql数据库中。
在其中,下面的代码可以工作:
conn = PGconn.open(:dbname => 'mydbname')
conn.exec("COPY valuations FROM '/Users/Username/Downloads/avroll.csv' DELIMITER ',' CSV HEADER")
这行不通:
conn = PGconn.open(:dbname => 'mydbname')
conn.exec("COPY valuations FROM 'https://s3-us-west-2.amazonaws.com/mydirectory/myfile.csv' DELIMITER ',' CSV HEADER")
我已经确认该文件可以在我的浏览器中通过该URL下载。
为什么这对本地文件有效,而不是在给定URL的文件?我怎样才能改正呢?
COPY仅适用于本地文件。http://www.postgresql.org/docs/9.1/static/sql-copy.html
COPY moves data between PostgreSQL tables and standard file-system files.
您可以通过Ruby下载文件,然后将位置传递给COPY命令。