Arb*_*ols 9 linux debian postgresql pgadmin
我在 Debian 操作系统上使用 pgAdmin 4。大约一个月前它运行良好,但今天它的 SQL 查询工具给出了一个神秘的错误消息:'table_oid'。右键单击菜单中的“查看/编辑数据”选项可以正常工作,也可以从 psql 命令行运行查询。我尝试断开服务器连接并重新启动它无济于事
pgadmin4.log 文件多次出现此错误语句:
2019-07-26 16:12:17,304: ERROR pgadmin: 'table_oid'
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python3/dist-packages/flask/app.py", line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/usr/lib/python3/dist-packages/flask_login/utils.py", line 228, in decorated_view
return func(*args, **kwargs)
File "/usr/share/pgadmin4/web/pgadmin/tools/sqleditor/__init__.py", line 432, in poll
trans_obj.check_updatable_results_pkeys()
File "/usr/share/pgadmin4/web/pgadmin/tools/sqleditor/command.py", line 899, in check_updatable_results_pkeys
is_query_resultset_updatable(conn, sql_path)
File "/usr/share/pgadmin4/web/pgadmin/tools/sqleditor/utils/is_query_resultset_updatable.py", line 38, in is_query_resultset_updatable
table_oid = _check_single_table(columns_info)
File "/usr/share/pgadmin4/web/pgadmin/tools/sqleditor/utils/is_query_resultset_updatable.py", line 61, in _check_single_table
table_oid = columns_info[0]['table_oid']
KeyError: 'table_oid'
Run Code Online (Sandbox Code Playgroud)
这个错误让我回到了大约两个小时。任何帮助将不胜感激!
postgres bugtracker 中存在关于此错误的票证。
问题是由于 python3-psycopg2。最新的 pgadmin4 版本需要 psycopg2 2.8。但是如果你使用的是 Debian/Ubuntu stable,apt 安装了 v2.7。
所以我们需要用 pip 添加最新版本:
sudo pip3 install -U psycopg2
Run Code Online (Sandbox Code Playgroud)
然后在 pgadmin PythonPath 中添加 /usr/local/lib (并希望它是路径中的第一个):
nano ~/.config/pgadmin/pgadmin4.conf # or with a right click on the system tray icon
# add /usr/local/lib/python3.7/dist-packages to the PythonPath.
Run Code Online (Sandbox Code Playgroud)
如果您使用的是其他版本的 Python,则必须更改此路径。
希望这可以帮助。
编辑(阅读 Quique 回复后):
如果您有两个版本的 psycopg2 这不是问题;v2.8 只能通过 /usr/local/lib 访问。
如果您尝试卸载 v2.7 debian 软件包,则依赖它的其他软件包(例如 QGIS)可能会遇到一些问题。
小智 5
vidlb 就在现场,我将添加一些细节:
sudo apt-get remove --purge psycopg2
sudo pip3 install -U psycopg2
sudo apt install pgadmin4
Run Code Online (Sandbox Code Playgroud)
/usr/local/lib/python3.6/dist-packages(或您系统的正确路径)填充 Python 路径框. 或者,您可以编辑~/.config/pgadmin/pgadmin4.conf看起来像[General]
ApplicationPath=
BrowserCommand=
FixedPort=false
PortNumber=1
PythonPath=/usr/local/lib/python3.6/dist-packages
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4312 次 |
| 最近记录: |