Byr*_*ngh 61 sql postgresql heroku
我有一个带有一堆插入命令的.sql文件,我想在heroku上的postgres数据库上执行.但我不知道怎么做: -
如果我可以访问postgres控制台,我会键入以下内容:
psql -h localhost -d database -U username -f datafile.sql
Run Code Online (Sandbox Code Playgroud)
但似乎heroku不支持此命令.我试过了
heroku pg:psql
Run Code Online (Sandbox Code Playgroud)
但这不允许我输入文件.
还有其他选择吗?
cat*_*sby 108
对于播种数据库这样的事情,我推荐理查德布朗的答案:你可以说使用像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
Run Code Online (Sandbox Code Playgroud)
Joh*_*non 20
为什么不使用psql?
如果您查看输出,heroku config您将看到您的应用程序正在使用的数据库URL(DATABASE_URL键) - 如果您采取此操作并将它们拆分为正确的位以便使用psqlall将是好的.
例如
DATABASE_URL: postgres://username:password@host:port/dbname
Run Code Online (Sandbox Code Playgroud)
变
psql -h host -p port -d dbname -U username -f datafile.sql
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21838 次 |
| 最近记录: |