我正在运行一个Java应用程序,其中打算将其隧道传输到生产数据库中以测试一些GET端点-当我在本地(例如-http :: localhost:9000 / get-data)中命中一个端点时,我需要我的应用程序连接到生产数据库而不是本地数据库,并从那里获取数据。我使用PostgreSQL。
我运行以下命令来建立隧道:
$ssh -f -N -L 9000:database1-hostname:5432 production-app-server-name
然后,测试我是否运行了上述作品:
$psql -h 127.0.0.1 -U user1-rolename -d database1-name -p 9000
现在,以上命令提示我输入我提供的密码(为abc),并且可以正常工作。这样我就可以看到所有生产表数据。
我更改了本地development.yml文件(该文件具有本地数据库信息),并使其指向生产数据库,如下所示:
writePostgres:
host: localhost
transactionPort: 5432
sessionPort: 5432
adminPort: 5432
database: database1-name
app:
user: user1-rolename
pass: abc #same one as i gave when prompted for above
然后,在另一个终端中,我尝试通过运行以下命令来启动我的Java应用程序:
$mvn clean package, $mvn clean install
$java -jar target/my-application-SNAPSHOT.jar server ./development.yml
我遇到以下错误:
com.zaxxer.hikari.pool.HikariPool $ PoolInitializationException:失败 初始化池:FATAL:角色“ user1-rolename”不存在
在com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:512)
因此,我猜测仍然尝试以某种方式连接到我的本地Postgres数据库,而该数据库显然没有添加上述角色(user1-rolename)。
是否应该连接到生产数据库?哪个角色已经添加了(user1-rolename)?
我在这里做什么错了?