2010-05-12 61 views
1

我想让我的单元测试套件在我的数据库中加载一个SQL文件。我使用像在没有密码依赖的情况下在PostgreSQL中加载SQL转储

"C:\Program Files\PostgreSQL\8.3\bin"\psql --host 127.0.0.1 --dbname unitTests --file C:\ZendStd\www\voo4\trunk\resources\sql\base_test_projectx.pg.sql --username postgres 2>&1 

命令它运行在命令行罚款,但需要我有一个pgpass.conf因为我需要在每个开发PC的运行单元测试套件,开发服务器上我想简化部署过程。有没有包含密码的命令行?

感谢, 塞德里克

回答

1

您应该运行bash脚本文件 “run_sql_commands.sh” 与此内容:

export PGHOST=localhost    
export PGPORT=5432 
export PGDATABASE=postgres 
export PGPASSWORD=postgres 
export PGUSER=postgres 

psql -f file_with_sql_commands.sql 
2

尝试添加一些喜欢的pg_hba.conf

local all   postgres        trust   

当然,这可使机器上的任何人连接为Postgres的,但它可以做你想做的。

编辑:

你似乎被连接到通过TCP本地主机。你可能需要这样的代替:

host all   postgres   127.0.0.1  trust 

再次,我大多猜测。我从来没有配置过Postgres。

+0

我不明白为什么,但是这是行不通的。我继续搜索。 – 2010-05-12 16:52:39

+0

@Cedric:看我的更新。也许这有效? – ig0774 2010-05-13 01:02:32

+0

是的,但我需要将/ 32添加到localhost ip地址(或者pg守护进程不启动)。如果我可以修改服务器配置(仅用于开发目的,当然不适用于真正的服务器),这是一个很好的解决方案。 – 2010-05-13 08:38:51

1
+0

我在寻找如何使用exec()设置PGPASSWORD环境变量,它似乎是简单的方法 – 2010-05-12 17:34:29

+0

因为您已经阅读过使用PGAPASSWORD链接的页面之一,因此不推荐使用。 – 2010-05-12 17:59:13

+0

是的,但我为开发PC做这个,所以安全性在这里不是问题。 – 2010-05-13 08:30:54

相关问题