我正在本地Windows机器上设置postgres并成功安装,但遇到导入转储的问题。命令
psql -U user db_name < sql_plus_dump.psql
不起作用。
它没有给出任何错误,但是什么也没有发生。
每当键入psql -U
时,它都会要求登录-U
,因为它不能识别用户。有什么想法吗?
尝试重新安装postgres
psql -U user_name db_name < sql_plus_dump.psql
答案 0 :(得分:0)
我假设您正在git bash或类似的东西下运行psql,而不是在cmd.exe或powershell下运行。
第一个解决方案是在cmd或powershell下运行它。这是因为psql检测到bash无法提供的某些功能,并认为它没有头,因此不会打印出多余的内容。
我所做的是设置了一些shell脚本包装,这些包装包括:a)创建PGPASSFILE,b)检测命令行是否是交互式的(在命令中给出的-f
或-c
)线)。如果是交互式的,请使用start
通过cmd.exe启动一个新窗口,否则只需在本地设置PGPASSFILE
即可运行它。 PGPASSFILE
允许我绕过密码查询(因为它现在已从磁盘自动读取),然后我的其余sql文件运行正常,尽管我使用了-f
而不是{{1} }。
设置起来有点麻烦,但是考虑到我比pgadmin更喜欢命令行,这对我来说是值得的。
答案 1 :(得分:0)
感谢所有帮助调试此问题的人,对此的进一步研究证明,命令“ psql -U user_name db_name