一尘不染

如何在heroku上执行.sql脚本?

sql

我有一个.sql文件,其中包含一堆要在heroku上的postgres数据库上执行的插入命令。但我不知道该怎么做:

如果我有权访问postgres控制台,请输入以下内容:

psql -h localhost -d database -U username -f datafile.sql

但似乎heroku不支持此命令。我尝试过

heroku pg:psql

但这不能让我输入文件。

还有其他选择吗?


阅读 175

收藏
2021-05-05

共1个答案

一尘不染

对于种子数据库之类的事情,我推荐理查德·布朗(Richard
Brown)的答案:可以说,最好使用Rails种子机制之类的东西,或者使用类似于rake任务的脚本。

就是说,能够通过管道传递sql(原始文件或文件)是一项有用的功能,特别是对于诸如简单查询或例行查询之类的幂等事物。在这种情况下,您可以使用以下任意一种执行本地sql:

$ cat file.sql | heroku pg:psql --app app_name
$ echo "select * from table;" | heroku pg:psql --app app_name
$ heroku pg:psql --app app_name < file.sql
2021-05-05