Heroku Postgres - 通过 CLI 从 CSV 导入

Heroku Postgres - Import from CSV via CLI

费了好大的劲才找到导入 CSV 的解决方案(在我的本地机器上 - 不要问 - 这是客户问题,这是我从他们那里获取数据的唯一方法时刻)进入我在 heroku 上的 pg 数据库。已尝试使用 COPY 直接从可公开访问的 URL 读取文件,但我需要 pg 中的超级用户权限才能执行此操作。尝试使用 cat 将文件的输出通过管道传输到标准输入,但不确定我的格式是否正确(它似乎总是完成但没有导入数据 - 完成后说 "COPY 0")。

cat ~/Downloads/localfile.csv | heroku pg:psql -c "COPY testonly FROM STDIN WITH (FORMAT CSV);"

因为在接下来的几个月里我将不得不再执行几次,所以我宁愿不必在本地导入它然后导出备份。如果我能让 COPY 选项正常工作,那就太好了。

你很接近,除了你需要将你的 csv 提供给本地 psqlheroku pg:psql 不接受标准输入。

像这样

cat ~/Downloads/localfile.csv | \
psql `heroku config:get DATABASE_URL` -c "COPY testonly FROM STDIN WITH (FORMAT CSV);"