在Windows上的emacs中运行M-x sql-postgres

时间:2010-07-19 19:09:01

标签: windows postgresql emacs

当我尝试在Windows上的emacs中运行劣质psql进程时,我似乎没有得到任何响应。这似乎是known problem,其解决方案是安装psql的cygwin版本。不幸的是,cygwin psql似乎绝对没有做任何事情,即使psql -V什么都不做。有没有人能够解决这些问题或者从emacs向postgresql发送查询的简单方法。

3 个答案:

答案 0 :(得分:1)

这可能不是一个好的答案,但我目前不在使用Emacs或PostGres的Windows机器上,所以我无法为您找到更好的解决方案。

那就是说,你能在命令shell中运行psql吗?如果是这样,也许您可​​以尝试启动shell(M-x shell)或EshellM-x eshell)来启动劣质shell并从那里运行psql

我原本打算建议你拨打M-x shell-command(也是M-!),然后为你的命令指定psql &&让Emacs知道你想要异步运行shell命令。但是,EmacsWiki上的this entry表示它无法在Windows上运行。无论如何你可以试试看看会发生什么......

答案 1 :(得分:1)

好的,我终于想出了如何让cygwin psql运行。似乎提供的cygpq.dll缺少一些入口点,

strace -o /dev/null psql --version

回复“过程入口点PQencryptPassword 无法找到动态链接库cygpq.dll。“

我用本地编译的cygfq.dll替换了cygwin提供的cygpq.dll,看来我们现在正在用煤气烹饪。我需要了解有关cygwin动态链接的更多信息。我感谢你们所有人的耐心支持。

答案 2 :(得分:1)

我有类似的问题(但无法使cygwin psql工作)。

最后,我发现M-x sql-postgres和M-x shell中的psql调用实际上是交互式的,但没有可见的提示;即,可以键入命令(在最后一行的最开头)并按预期执行。

在我意识到我修改了我的postgres密码文件以避免密码提示以及在M-x shell中初始挂起psql调用之前:

当默认值不太正确时,您可以通过将环境变量PGDATABASE,PGHOST,PGPORT和/或PGUSER设置为适当的值来节省一些输入。 (有关其他环境变量,请参阅文档。)使用〜/ .pgpass文件也很方便,以避免经常输入密码。有关更多信息,请参阅文档。 (http://linux.die.net/man/1/psql