我在 Windows 10 上运行 Pgadmin V4.17。当我尝试为表创建选择或更新 SQL 语句时(右键单击表脚本),我收到一个错误窗口,其中包含文本“错误消息”和标题文本:获取脚本“attname”的 SQL 时出错。该错误出现在所有 PG 数据库(本地或远程)上。
帮助中显示的我的环境是:
版本 4.17 版权所有版权所有 (C) 2013 - 2020,pgAdmin 开发团队 Python 版本 3.7.3 (v3.7.3:ef4ec6ed12,2019 年 3 月 25 日,21:26:53) [MSC v.1916 32 位 (Intel)] Flask 版本 1.0.2 应用程序模式桌面当前用户[电子邮件保护]
最后的 pgadmin 日志行是:
*2020-01-27 17:05:32,389:错误 flask.app:'attname' 回溯(最近一次调用最后一次):文件“C:/app/pgAdmin4/v4/venv/Lib/site-packages\flask\app.py”,第 1813 行,在 full_dispatch_request 中 rv = self.dispatch_request() 文件“C:/app/pgAdmin4/v4/venv/Lib/site-packages\flask\app.py”,第 1799 行,在 dispatch_request 中返回 self.view_functionsrule.endpoint 文件“C:/app/pgAdmin4/v4/venv/Lib/site-packages\flask\views.py”,第 88 行,在视图中返回 self.dispatch_request(*args, **kwargs) 文件“C:\app\pgAdmin4\v4\web\pgadmin\browser\utils.py”,第 311 行,在 dispatch_request 返回方法(*args,**kwargs)文件“C:\app\pgAdmin4\v4\web\pgadmin\browser\server_groups\servers\databases\schemas\tables\utils.py”,第 141 行,在 wrap return f(*args,**kwargs)文件“C:\app\pgAdmin4\v4\web\pgadmin\browser\server_groups\servers\databases\schemas\tables__init__.py”,第 1310 行,在 select_sql columns.append(self.qtIdent(self.conn,c['attname']))KeyError:'attname'*
我可以编写 SQL 选择并运行它们,但不能生成它们。有什么想法吗?
答案1
我也遇到了同样的问题。4.16 版本运行正常,后来我更新了它,又出现了这个问题。
我需要做的是将我的 pgAdmin 版本降级到 4.16,现在它可以正常工作了。
我希望这有帮助。
PD:我希望 pgAdmin 开发人员尽快解决这个错误。
答案2
我刚刚修复了我的 Pgadmin4,它是一个 python wheel 版本。
我有一个来自 python 3.8 的 pyenv-virtualenv,我在其中安装了 pgadmin4 wheel。
我在这个文件中发现了:
~/.pyenv/versions/3.8.1/envs/mypgadmin4/lib/python3.8/site-packages/pgadmin4/pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py
只需修复第 1310 行:
columns.append(self.qtIdent(self.conn, c['attname']))
到
columns.append(self.qtIdent(self.conn, c['name']))
他们更改了属性名称。这就是为什么会出现此错误
希望有帮助