使用RoundhousE工具操作PostgreSQL遇连接错误,求参数配置建议
RoundhousE连接PostgreSQL问题解决
核心错误原因
你看到的错误是连接SQL Server失败,但你实际目标是PostgreSQL——这说明RoundhousE默认使用SQL Server驱动,没有识别出你要连接的数据库类型,导致连接方向完全错误。
关于用户名密码参数
是的,你需要添加PostgreSQL的用户名和密码参数,同时必须修正数据库类型配置,否则工具还是会尝试连SQL Server。
具体修正方案
- 指定数据库类型:添加
/dt=PostgreSQL参数,明确告诉RoundhousE要连接的是PostgreSQL(默认值是SQL Server)。 - 修正服务器地址:你的命令中
/s="PostgreSQL 14"是错误的,应该替换为PostgreSQL的服务器地址,本地环境用localhost即可;如果你的PostgreSQL不是默认端口5432,加上端口号,比如localhost:5432。 - 添加认证参数:
/u=你的PostgreSQL用户名:默认用户名通常是postgres/p=你的PostgreSQL密码:安装PostgreSQL时设置的密码
修正后的命令示例
"D:\Users\myusername\.dotnet\tools\rh.exe" rh.redgate.diff /d="TestRoundhousE" /dt=PostgreSQL /s="localhost" /u="postgres" /p="你的密码" /f="D:\Users\myusername\Desktop\Round\roundhouse\db\PostgreSQL" /vf="_BuildInfo.xml" /vx="//buildInfo/version" /r="https://github.com/chucknorris/roundhouse.git" /env=LOCAL /simple
同步修正bat文件
在rh.redgate.diff.bat中补充数据库类型和认证变量,修改后的内容如下:
@echo off :: 原SQL Compare相关内容已注释 ::"C:\Program Files (x86)\Red Gate\SQL Compare 8\sqlcompare.exe" /database1:"TestRoundhousE" /scripts2:"C:\code\RoundhousE\db\TestRoundhouse" /include:table /exclude:table:\[Version\]^|\[ScriptsRun\]^|\[ScriptsRunErrors\] /options:Default,IgnoreConstraintNames,IgnorePermissions /ignoreparsererrors /f /scriptfile:"C:\Users\robz\Desktop\Diff.sql" SET DIR=%~d0%~p0% SET DIR=C:\code\roundhouse\code_drop\sample\deployment\ SET database.name="TestRoundhousE" SET sql.files.directory="D:\Users\username\Desktop\Round\roundhouse\db\PostgreSQL\TestRoundhousE" SET server.database="localhost" SET db.type=PostgreSQL SET db.username="postgres" SET db.password="你的密码" SET repository.path="https://github.com/chucknorris/roundhouse.git" SET version.file="_BuildInfo.xml" SET version.xpath="//buildInfo/version" SET environment=LOCAL "D:\Users\username\.dotnet\tools\rh.exe" rh.redgate.diff /d=%database.name% /dt=%db.type% /s=%server.database% /u=%db.username% /p=%db.password% /f=%sql.files.directory% /vf=%version.file% /vx=%version.xpath% /r=%repository.path% /env=%environment% /simple pause
额外验证步骤
- 确认PostgreSQL服务处于运行状态
- 用psql工具测试用户名密码能否正常登录本地库
- 检查
pg_hba.conf,确保允许本地连接(配置了trust或md5认证方式)
内容的提问来源于stack exchange,提问作者shivu
相关产品推荐
相关产品推荐

