-
问题现象及分析
最近在本机安装了postgresql v12版本(zip解压版),在启动pgadmin4时,未能正常启动,错误日志中提示在pgadmin的配置数据库中找不到pgadmin4@pgadmin.org用户,错误界面如下:
点击configure按钮也未有相关的设置。由于之前使用的是web版的pgadmin(python虚拟环境运行的),所以猜测新版使用的是与web版相同的配置数据库,Windows系统下pgadmin的默认配置数据库是%userprofile%/AppData/Roaming/pgAdmin目录下的pgadmin4.db(SQLite数据库文件),而这里保存的用户是初次启动web端时注册的用户邮箱和密码,而不是pgadmin4@pgadmin.org。
-
解决办法
根据pgadmin4管理手册中关于pgadmin配置相关的内容(The config.py File — pgAdmin 4 8.9 documentation),pgadmin4桌面版启动过程中,配置文件是一系列的config文件按顺序加载的过程,其中最后加载的是config_system.py,也就是说这个文件中设置的参数是最终的内容,该文件位于%CommonProgramFiles%\pgadmin目录下,因此只要在这个文件里面将DESKTOP_USER设置为原web端配置的用户即可,如:
DESKTOP_USER = '你自己的web端登陆用户邮箱'
这里还可以设置其他的内容,具体可参考前面的链接。上述文件或目录不存在时,可按路径和文件名手工创建。
此外,根据pgadmin文档中的说明,也可以修改config_distro.py或者config_local.py,但是考虑这两个文件位于安装,目录下,很可能被后续的升级程序覆盖,所以建议还是修改config_system.py。
通过上述设置后,新版的pgadmin4桌面端和web端就均可以同时使用了。