我有一些代码通过 JDBC 与 postgres 数据库交互。但是,出于测试目的,我只想快速创建一个新数据库并连接到它,而无需修改我的全局 postgres 安装、管理用户等。人们通常如何进行这种测试?
最佳答案
我会找到 initdb
可执行文件并使用它来创建一个当前用户可写的新数据库实例临时存储。因为它是一个测试实例,所以使用类似 initdb --auth=trust --username=postgres -D/path/to/temp/datadir
这样新的数据库被设置为接受连接而不需要密码.
使用pg_ctl
启动服务器,指定端口覆盖生成的postgresql.conf
中的默认设置,避免冲突。
连接到新的数据库集群并做任何需要的工作。在将控制权移交给测试代码之前,您需要首先以用户 postgres
的身份连接并运行任何必需的 CREATE USER
和 CREATE DATABASE
命令.
最后用pg_ctl
停止,最后删除data目录。
您只需要 PATH
上的 initdb
和 pg_ctl
,以及管理服务器的帮助类。
参见:
关于java - 用于测试的最小 postgres 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13771968/