如何在没有userinput/password的情况下从命令行执行PostgreSQL脚本文件

der*_*eve 5 postgresql command-line wix command-line-arguments

在安装我的应用程序期间,我想创建一个PostgreSQL数据库以及一些表和函数.

为此,我使用PostgreSQL附带的PSQL.EXE.我有2个脚本.第一个创建数据库和相应的用户,该用户有权在该数据库上执行脚本.我想执行第二个脚本,因为这只是刚创建的用户.不幸的是,我找不到将该用户的密码作为命令行参数传递的方法.省略密码导致停止执行并提示用户输入密码,我想避免 - 因为这是在我的应用程序安装期间执行的.

有没有办法将密码作为参数传递或是否有任何其他命令行工具我可以使用?

更进一步解释环境.我使用WiX 3.5设置作为"MSI-Builder".

a_h*_*ame 6

你可以使用pgpass文件作为dbenhur answerd,也可以在调用psql之前设置环境变量PGPASSWORD:

SET PGPASSWORD=my_very_secret_password
psql somedb someuser
Run Code Online (Sandbox Code Playgroud)

所有受支持的环境变量都记录在手册中:http://www.postgresql.org/docs/current/static/libpq-envars.html


dbe*_*hur 5

您无法通过cmdline arg提供密码(并且不希望因为安全性较差).

您可以提供.pgpass文件以支持自动脚本身份验证.这是文档.