我有一个.sql文件,其中包含一堆要在heroku上的postgres数据库上执行的插入命令。但我不知道该怎么做:
如果我有权访问postgres控制台,请输入以下内容:
psql -h localhost -d database -U username -f datafile.sql
但似乎heroku不支持此命令。我尝试过
heroku pg:psql
但这不能让我输入文件。
还有其他选择吗?
对于种子数据库之类的事情,我推荐理查德·布朗(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