sqlalchemy.exc.DatabaseError:Unknown system variable 'tx_isolation'

在使用MySQL8.0.13时遇到DatabaseError: Unknown system variable 'tx_isolation'。此问题源于tx_isolation在MySQL8.0中被移除,替代为transaction_isolation。由于mysql-connector版本低未及时更新,解决方案包括降低MySQL版本至5.7或更新mysql-connector。

在使用的是mysql8.0.13,链接报错

sqlalchemy.exc.DatabaseError: (mysql.connector.errors.DatabaseError) 1193 (HY000): Unknown system variable 'tx_isolation'

一开始以为是隔离级别的问题,试过好几个解决方法,反正我是没有试出来,根本就不是隔离级别的问题。

问题根源:

 transaction_isolation was added in MySQL 5.7.20 as an alias for tx_isolation, which is now deprecated and is removed in MySQL 8.0. Applications should be adjusted to use transaction_isolation in preference to tx_isolation.

transaction_isolation在MySQL 5.7.20中添加了作为别名 tx_isolation,现已弃用,并在MySQL 8.0中删除。

(关于MySQL的事务隔离级别可以看看Mysql8.0.12的四种事务隔离级别

原因是因为mysql-connection版本低,在MySQL从5.7更新之后mysql-connection的最新版本没有跟上。

最后解决方法就是:

降低了MySQL的版本将原来8.0.13的版本降低为5.7。

问题解决。

可是在Java中就有对应的mysql-connection的更新依赖包,如有其它解决方法请指出。

 

Oct 27 14:06:14 DESKTOP-9QS7RL5 start_superset.sh[1673]: Loaded your LOCAL configuration at [/home/gapinyc/superset/superset_config.py] Oct 27 14:06:14 DESKTOP-9QS7RL5 start_superset.sh[1673]: 2025-10-27 14:06:14,796:INFO:superset.initialization:Setting database isolation level to READ COMMITTED Oct 27 14:06:15 DESKTOP-9QS7RL5 start_superset.sh[1673]: [2025-10-27 14:06:15 +0800] [1673] [INFO] Starting gunicorn 23.0.0 Oct 27 14:06:15 DESKTOP-9QS7RL5 start_superset.sh[1673]: [2025-10-27 14:06:15 +0800] [1673] [INFO] Listening at: http://0.0.0.0:8088 (1673) Oct 27 14:06:15 DESKTOP-9QS7RL5 start_superset.sh[1673]: [2025-10-27 14:06:15 +0800] [1673] [INFO] Using worker: gthread Oct 27 14:06:15 DESKTOP-9QS7RL5 start_superset.sh[1687]: [2025-10-27 14:06:15 +0800] [1687] [INFO] Booting worker with pid: 1687 Oct 27 14:06:15 DESKTOP-9QS7RL5 start_superset.sh[1688]: [2025-10-27 14:06:15 +0800] [1688] [INFO] Booting worker with pid: 1688 Oct 27 14:06:15 DESKTOP-9QS7RL5 start_superset.sh[1689]: [2025-10-27 14:06:15 +0800] [1689] [INFO] Booting worker with pid: 1689 Oct 27 14:06:15 DESKTOP-9QS7RL5 start_superset.sh[1690]: [2025-10-27 14:06:15 +0800] [1690] [INFO] Booting worker with pid: 1690 Oct 27 14:06:39 DESKTOP-9QS7RL5 start_superset.sh[1688]: 127.0.0.1 - - [27/Oct/2025:14:06:39 +0800] "GET / HTTP/1.1" 302 223 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" Oct 27 14:06:39 DESKTOP-9QS7RL5 start_superset.sh[1688]: 2025-10-27 14:06:39,599:ERROR:superset.translations.utils:Error loading language pack for, falling back on en zh Oct 27 14:06:39 DESKTOP-9QS7RL5 start_superset.sh[1688]: 127.0.0.1 - - [27/Oct/2025:14:06:39 +0800] "GET /superset/welcome/ HTTP/1.1" 200 5443 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: 2025-10-27 14:06:40,223:WARNING:superset.views.error_handling:Exception Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: Traceback (most recent call last): Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/cursor.py", line 666, in _indexes_for_keys Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: return [self._keymap[key][0] for key in keys] Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/cursor.py", line 666, in <listcomp> Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: return [self._keymap[key][0] for key in keys] Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: KeyError: Column('id', Integer(), table=<ab_user>, primary_key=True, nullable=False, default=Sequence('ab_user_id_seq', metadata=MetaData())) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: The above exception was the direct cause of the following exception: Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: Traceback (most recent call last): Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask/app.py", line 1484, in full_dispatch_request Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: rv = self.dispatch_request() Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask/app.py", line 1469, in dispatch_request Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/security/decorators.py", line 106, in wraps Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: if current_app.appbuilder.sm.has_access( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/security/manager.py", line 1651, in has_access Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: if current_user.is_authenticated: Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/werkzeug/local.py", line 318, in __get__ Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: obj = instance._get_current_object() Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/werkzeug/local.py", line 526, in _get_current_object Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: return get_name(local()) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_login/utils.py", line 25, in <lambda> Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: current_user = LocalProxy(lambda: _get_user()) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_login/utils.py", line 370, in _get_user Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: current_app.login_manager._load_user() Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_login/login_manager.py", line 364, in _load_user Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: user = self._user_callback(user_id) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/security/manager.py", line 2226, in load_user Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: user = self.get_user_by_id(int(pk)) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/security/sqla/manager.py", line 286, in get_user_by_id Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: return self.get_session.query(self.user_model).get(pk) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "<string>", line 2, in get Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/deprecations.py", line 468, in warned Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: return fn(*args, **kwargs) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/query.py", line 947, in get Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: return self._get_impl(ident, loading.load_on_pk_identity) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/query.py", line 951, in _get_impl Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: return self.session._get_impl( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 2975, in _get_impl Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: return db_load_fn( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 530, in load_on_pk_identity Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: session.execute( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 1720, in execute Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: result = compile_state_cls.orm_setup_cursor_result( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/context.py", line 349, in orm_setup_cursor_result Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: return loading.instances(result, querycontext) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 88, in instances Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: with util.safe_reraise(): Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__ Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: compat.raise_( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: raise exception Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 69, in instances Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: *[ Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 70, in <listcomp> Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: query_entity.row_processor(context, cursor) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/context.py", line 2631, in row_processor Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: _instance = loading._instance_processor( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 715, in _instance_processor Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: primary_key_getter = result._tuple_getter(pk_cols) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 962, in _tuple_getter Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: return self._metadata._row_as_tuple_getter(keys) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 106, in _row_as_tuple_getter Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: indexes = self._indexes_for_keys(keys) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/cursor.py", line 669, in _indexes_for_keys Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: CursorResultMetaData._key_fallback(self, ke.args[0], ke) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/cursor.py", line 628, in _key_fallback Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: util.raise_( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: raise exception Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: sqlalchemy.exc.NoSuchColumnError: Could not locate column in row for column 'ab_user.id' Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: 2025-10-27 14:06:40,238:ERROR:superset.views.error_handling:Could not locate column in row for column 'ab_user.id' Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: Traceback (most recent call last): Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/cursor.py", line 666, in _indexes_for_keys Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: return [self._keymap[key][0] for key in keys] Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/cursor.py", line 666, in <listcomp> Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: return [self._keymap[key][0] for key in keys] Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: KeyError: Column('id', Integer(), table=<ab_user>, primary_key=True, nullable=False, default=Sequence('ab_user_id_seq', metadata=MetaData())) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: The above exception was the direct cause of the following exception: Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: Traceback (most recent call last): Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask/app.py", line 1484, in full_dispatch_request Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: rv = self.dispatch_request() Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask/app.py", line 1469, in dispatch_request Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/security/decorators.py", line 106, in wraps Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: if current_app.appbuilder.sm.has_access( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/security/manager.py", line 1651, in has_access Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: if current_user.is_authenticated: Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/werkzeug/local.py", line 318, in __get__ Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: obj = instance._get_current_object() Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/werkzeug/local.py", line 526, in _get_current_object Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: return get_name(local()) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_login/utils.py", line 25, in <lambda> Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: current_user = LocalProxy(lambda: _get_user()) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_login/utils.py", line 370, in _get_user Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: current_app.login_manager._load_user() Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_login/login_manager.py", line 364, in _load_user Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: user = self._user_callback(user_id) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/security/manager.py", line 2226, in load_user Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: user = self.get_user_by_id(int(pk)) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/security/sqla/manager.py", line 286, in get_user_by_id Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: return self.get_session.query(self.user_model).get(pk) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "<string>", line 2, in get Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/deprecations.py", line 468, in warned Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: return fn(*args, **kwargs) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/query.py", line 947, in get Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: return self._get_impl(ident, loading.load_on_pk_identity) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/query.py", line 951, in _get_impl Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: return self.session._get_impl( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 2975, in _get_impl Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: return db_load_fn( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 530, in load_on_pk_identity Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: session.execute( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 1720, in execute Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: result = compile_state_cls.orm_setup_cursor_result( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/context.py", line 349, in orm_setup_cursor_result Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: return loading.instances(result, querycontext) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 88, in instances Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: with util.safe_reraise(): Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__ Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: compat.raise_( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: raise exception Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 69, in instances Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: *[ Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 70, in <listcomp> Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: query_entity.row_processor(context, cursor) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/context.py", line 2631, in row_processor Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: _instance = loading._instance_processor( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 715, in _instance_processor Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: primary_key_getter = result._tuple_getter(pk_cols) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 962, in _tuple_getter Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: return self._metadata._row_as_tuple_getter(keys) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 106, in _row_as_tuple_getter Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: indexes = self._indexes_for_keys(keys) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/cursor.py", line 669, in _indexes_for_keys Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: CursorResultMetaData._key_fallback(self, ke.args[0], ke) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/cursor.py", line 628, in _key_fallback Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: util.raise_( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: raise exception Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: sqlalchemy.exc.NoSuchColumnError: Could not locate column in row for column 'ab_user.id' Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: [2025-10-27 14:06:40 +0800] [1687] [ERROR] Error handling request /api/v1/database/?q=(filters:!((col:allow_file_upload,opr:upload_is_enabled,value:!t))) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: Traceback (most recent call last): Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1062, in _rollback_impl Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: self.engine.dialect.do_rollback(self.connection) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 683, in do_rollback Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: dbapi_connection.rollback() Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/connections.py", line 505, in rollback Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: self._read_ok_packet() Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/connections.py", line 465, in _read_ok_packet Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: pkt = self._read_packet() Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/connections.py", line 751, in _read_packet Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: packet_header = self._read_bytes(4) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/connections.py", line 805, in _read_bytes Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: raise err.OperationalError( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: pymysql.err.OperationalError: (2013, 'Lost connection to MySQL server during query') Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: The above exception was the direct cause of the following exception: Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: Traceback (most recent call last): Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/gunicorn/workers/gthread.py", line 281, in handle Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: keepalive = self.handle_request(req, conn) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/gunicorn/workers/gthread.py", line 333, in handle_request Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: respiter = self.wsgi(environ, resp.start_response) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask/app.py", line 2213, in __call__ Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: return self.wsgi_app(environ, start_response) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask/app.py", line 2206, in wsgi_app Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: ctx.pop(error) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask/ctx.py", line 417, in pop Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: app_ctx.pop(exc) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask/ctx.py", line 255, in pop Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: self.app.do_teardown_appcontext(exc) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask/app.py", line 2063, in do_teardown_appcontext Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: self.ensure_sync(func)(exc) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_sqlalchemy/__init__.py", line 899, in shutdown_session Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: self.session.remove() Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/scoping.py", line 181, in remove Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: self.registry().close() Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 1816, in close Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: self._close_impl(invalidate=False) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 1858, in _close_impl Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: transaction.close(invalidate) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 926, in close Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: transaction.close() Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2426, in close Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: self._do_close() Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2649, in _do_close Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: self._close_impl() Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2635, in _close_impl Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: self._connection_rollback_impl() Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2627, in _connection_rollback_impl Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: self.connection._rollback_impl() Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1064, in _rollback_impl Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: self._handle_dbapi_exception(e, None, None, None, None) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2134, in _handle_dbapi_exception Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: util.raise_( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: raise exception Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1062, in _rollback_impl Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: self.engine.dialect.do_rollback(self.connection) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 683, in do_rollback Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: dbapi_connection.rollback() Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/connections.py", line 505, in rollback Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: self._read_ok_packet() Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/connections.py", line 465, in _read_ok_packet Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: pkt = self._read_packet() Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/connections.py", line 751, in _read_packet Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: packet_header = self._read_bytes(4) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/connections.py", line 805, in _read_bytes Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: raise err.OperationalError( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2013, 'Lost connection to MySQL server during query') Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: (Background on this error at: https://sqlalche.me/e/14/e3q8) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: 127.0.0.1 - - [27/Oct/2025:14:06:40 +0800] "GET /api/v1/database/?q=(filters:!((col:allow_file_upload,opr:upload_is_enabled,value:!t))) HTTP/1.1" 500 0 "-" "-" Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1689]: 127.0.0.1 - - [27/Oct/2025:14:06:40 +0800] "GET /api/v1/log/recent_activity/?q=(distinct:!f,page_size:24) HTTP/1.1" 200 175 "http://192.168.110.204/superset/welcome/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: 2025-10-27 14:06:40,222:ERROR:superset.views.error_handling:This result object does not return rows. It has been closed automatically. Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: Traceback (most recent call last): Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/superset/views/error_handling.py", line 101, in wraps Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: return f(self, *args, **kwargs) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/superset/views/base_api.py", line 487, in get_list_headless Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: duration, response = time_function(super().get_list_headless, **kwargs) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/superset/utils/core.py", line 1369, in time_function Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: response = func(*args, **kwargs) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/api/__init__.py", line 1632, in get_list_headless Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: count, lst = self.datamodel.query( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/models/sqla/interface.py", line 501, in query Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: count = self.query_count(query, filters, select_columns) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/models/sqla/interface.py", line 406, in query_count Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: return self._apply_inner_all( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/models/sqla/interface.py", line 388, in _apply_inner_all Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: query = self.apply_filters(query, inner_filters) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/models/sqla/interface.py", line 225, in apply_filters Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: return filters.apply_all(query) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/models/filters.py", line 302, in apply_all Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: query = flt.apply(query, values) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/superset/databases/filters.py", line 58, in apply Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: if security_manager.can_access_all_databases(): Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/superset/security/manager.py", line 469, in can_access_all_databases Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: return self.can_access("all_database_access", "all_database_access") Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/superset/security/manager.py", line 441, in can_access Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: return self._has_view_access(user, permission_name, view_name) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/security/manager.py", line 1561, in _has_view_access Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: return bool(db_role_ids) and self.exist_permission_on_roles( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/security/sqla/manager.py", line 440, in exist_permission_on_roles Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: return self.appbuilder.get_session.query(q).scalar() Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/query.py", line 2893, in scalar Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: ret = self.one() Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/query.py", line 2870, in one Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: return self._iter().one() Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 1258, in one Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: return self._only_one_row( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 559, in _only_one_row Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: row = onerow(hard_close=True) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 1801, in _fetchone_impl Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: row = next(self.iterator, _NO_ROW) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 147, in chunks Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: fetch = cursor._raw_all_rows() Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 391, in _raw_all_rows Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: make_row = self._row_getter Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 1184, in __get__ Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: obj.__dict__[self.__name__] = result = self.fget(obj) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 320, in _row_getter Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: keymap = metadata._keymap Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/cursor.py", line 1221, in _keymap Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: self._we_dont_return_rows() Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/cursor.py", line 1202, in _we_dont_return_rows Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: util.raise_( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: raise exception Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: sqlalchemy.exc.ResourceClosedError: This result object does not return rows. It has been closed automatically. Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: 2025-10-27 14:06:40,287:ERROR:root:DBEventLogger failed to log event(s) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: 127.0.0.1 - - [27/Oct/2025:14:06:40 +0800] "GET /api/v1/saved_query/?q=(filters:!((col:created_by,opr:rel_o_m,value:%271%27)),order_column:changed_on_delta_humanized,order_direction:desc,page:0,page_size:5) HTTP/1.1" 200 457 "http://192.168.110.204/superset/welcome/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: 2025-10-27 14:06:40,288:ERROR:root:(pymysql.err.OperationalError) (2006, "MySQL server has gone away (BrokenPipeError(32, 'Broken pipe'))") Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: [SQL: INSERT INTO logs (action, user_id, json, dttm, duration_ms, referrer) VALUES (%(action)s, %(user_id)s, %(json)s, %(dttm)s, %(duration_ms)s, %(referrer)s)] Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: [parameters: {'action': 'DatabaseRestApi.get_list', 'user_id': 1, 'json': '{"path": "/api/v1/database/", "q": "(filters:!((col:database_name,opr:neq,value:examples)))", "rison": {"filters": [{"col": "database_name", "opr": "neq", "value": "examples"}]}}', 'dttm': datetime.datetime(2025, 10, 27, 6, 6, 40, 287254), 'duration_ms': 71, 'referrer': 'http://192.168.110.204/superset/welcome/'}] Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: (Background on this error at: https://sqlalche.me/e/14/e3q8) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: Traceback (most recent call last): Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/connections.py", line 813, in _write_bytes Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: self._sock.sendall(data) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: BrokenPipeError: [Errno 32] Broken pipe Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: During handling of the above exception, another exception occurred: Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: Traceback (most recent call last): Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1910, in _execute_context Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: self.dialect.do_execute( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 736, in do_execute Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: cursor.execute(statement, parameters) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/cursors.py", line 153, in execute Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: result = self._query(query) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/cursors.py", line 322, in _query Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: conn.query(q) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/connections.py", line 574, in query Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: self._execute_command(COMMAND.COM_QUERY, sql) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/connections.py", line 865, in _execute_command Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: self._write_bytes(packet) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/connections.py", line 816, in _write_bytes Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: raise err.OperationalError( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: pymysql.err.OperationalError: (2006, "MySQL server has gone away (BrokenPipeError(32, 'Broken pipe'))") Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: The above exception was the direct cause of the following exception: Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: Traceback (most recent call last): Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/superset/utils/log.py", line 406, in log Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: db.session.bulk_save_objects(logs) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "<string>", line 2, in bulk_save_objects Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 3705, in bulk_save_objects Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: self._bulk_save_mappings( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 3912, in _bulk_save_mappings Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: with util.safe_reraise(): Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__ Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: compat.raise_( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: raise exception Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 3901, in _bulk_save_mappings Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: persistence._bulk_insert( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/persistence.py", line 107, in _bulk_insert Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: _emit_insert_statements( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/persistence.py", line 1097, in _emit_insert_statements Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: c = connection._execute_20( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1710, in _execute_20 Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: return meth(self, args_10style, kwargs_10style, execution_options) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", line 334, in _execute_on_connection Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: return connection._execute_clauseelement( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1577, in _execute_clauseelement Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: ret = self._execute_context( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1953, in _execute_context Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: self._handle_dbapi_exception( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2134, in _handle_dbapi_exception Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: util.raise_( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: raise exception Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1910, in _execute_context Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: self.dialect.do_execute( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 736, in do_execute Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: cursor.execute(statement, parameters) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/cursors.py", line 153, in execute Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: result = self._query(query) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/cursors.py", line 322, in _query Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: conn.query(q) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/connections.py", line 574, in query Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: self._execute_command(COMMAND.COM_QUERY, sql) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/connections.py", line 865, in _execute_command Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: self._write_bytes(packet) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/connections.py", line 816, in _write_bytes Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: raise err.OperationalError( Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2006, "MySQL server has gone away (BrokenPipeError(32, 'Broken pipe'))") Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: [SQL: INSERT INTO logs (action, user_id, json, dttm, duration_ms, referrer) VALUES (%(action)s, %(user_id)s, %(json)s, %(dttm)s, %(duration_ms)s, %(referrer)s)] Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: [parameters: {'action': 'DatabaseRestApi.get_list', 'user_id': 1, 'json': '{"path": "/api/v1/database/", "q": "(filters:!((col:database_name,opr:neq,value:examples)))", "rison": {"filters": [{"col": "database_name", "opr": "neq", "value": "examples"}]}}', 'dttm': datetime.datetime(2025, 10, 27, 6, 6, 40, 287254), 'duration_ms': 71, 'referrer': 'http://192.168.110.204/superset/welcome/'}] Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: (Background on this error at: https://sqlalche.me/e/14/e3q8) Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1688]: 127.0.0.1 - - [27/Oct/2025:14:06:40 +0800] "GET /api/v1/database/?q=(filters:!((col:database_name,opr:neq,value:examples))) HTTP/1.1" 500 87 "http://192.168.110.204/superset/welcome/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1687]: 127.0.0.1 - - [27/Oct/2025:14:06:40 +0800] "GET /api/v1/dashboard/?q=(filters:!(),order_column:changed_on_delta_humanized,order_direction:desc,page:0,page_size:5) HTTP/1.1" 200 734 "http://192.168.110.204/superset/welcome/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1690]: 127.0.0.1 - - [27/Oct/2025:14:06:40 +0800] "GET /api/v1/dashboard/?q=(filters:!((col:owners,opr:rel_m_m,value:%271%27)),order_column:changed_on_delta_humanized,order_direction:desc,page:0,page_size:5) HTTP/1.1" 200 734 "http://192.168.110.204/superset/welcome/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1689]: 127.0.0.1 - - [27/Oct/2025:14:06:40 +0800] "GET /api/v1/chart/?q=(filters:!(),order_column:changed_on_delta_humanized,order_direction:desc,page:0,page_size:5) HTTP/1.1" 200 749 "http://192.168.110.204/superset/welcome/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1690]: 127.0.0.1 - - [27/Oct/2025:14:06:40 +0800] "GET /api/v1/chart/?q=(filters:!((col:owners,opr:rel_m_m,value:%271%27)),order_column:changed_on_delta_humanized,order_direction:desc,page:0,page_size:5) HTTP/1.1" 200 749 "http://192.168.110.204/superset/welcome/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1689]: 127.0.0.1 - - [27/Oct/2025:14:06:40 +0800] "GET /api/v1/dashboard/favorite_status/?q=!(1) HTTP/1.1" 200 36 "http://192.168.110.204/superset/welcome/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1690]: 127.0.0.1 - - [27/Oct/2025:14:06:40 +0800] "GET /api/v1/dashboard/_info?q=(keys:!(permissions)) HTTP/1.1" 200 147 "http://192.168.110.204/superset/welcome/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" Oct 27 14:06:40 DESKTOP-9QS7RL5 start_superset.sh[1689]: 127.0.0.1 - - [27/Oct/2025:14:06:40 +0800] "GET /api/v1/chart/_info?q=(keys:!(permissions)) HTTP/1.1" 200 74 "http://192.168.110.204/superset/welcome/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" Oct 27 14:06:41 DESKTOP-9QS7RL5 start_superset.sh[1690]: 127.0.0.1 - - [27/Oct/2025:14:06:41 +0800] "POST /superset/log/?explode=events HTTP/1.1" 200 20 "http://192.168.110.204/superset/welcome/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0"
最新发布
10-28
(venv) gapinyc@DESKTOP-9QS7RL5:~/superset$ gunicorn \ --bind 0.0.0.0:8088 \ --workers 4 \ --worker-class gthread \ --threads 4 \ --timeout 120 \ --max-requests 1000 \ --max-requests-jitter 100 \ --preload \ --access-logfile - \ --error-logfile - \ "superset.app:create_app()" 👉 Using SECRET_KEY: '1sCjCsfAPMBskPWPSJ0Gja7JvpufVc50vTW04MSiJuzNN3JPlUYL3MR+' Loaded your LOCAL configuration at [/home/gapinyc/superset/superset_config.py] 2025-10-25 13:13:27,140:INFO:superset.initialization:Setting database isolation level to READ COMMITTED [2025-10-25 13:13:27 +0800] [19396] [INFO] Starting gunicorn 23.0.0 [2025-10-25 13:13:27 +0800] [19396] [INFO] Listening at: http://0.0.0.0:8088 (19396) [2025-10-25 13:13:27 +0800] [19396] [INFO] Using worker: gthread [2025-10-25 13:13:27 +0800] [19410] [INFO] Booting worker with pid: 19410 [2025-10-25 13:13:27 +0800] [19411] [INFO] Booting worker with pid: 19411 [2025-10-25 13:13:27 +0800] [19412] [INFO] Booting worker with pid: 19412 [2025-10-25 13:13:27 +0800] [19413] [INFO] Booting worker with pid: 19413 127.0.0.1 - - [25/Oct/2025:13:13:31 +0800] "GET / HTTP/1.1" 302 223 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 127.0.0.1 - - [25/Oct/2025:13:13:31 +0800] "GET /superset/welcome/ HTTP/1.1" 200 5767 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 2025-10-25 13:13:31,674:ERROR:flask_appbuilder.models.sqla.filters:Related object for column: owners, value: 1 return Null 2025-10-25 13:13:31,674:WARNING:superset.views.error_handling:Exception Traceback (most recent call last): File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/cursor.py", line 666, in _indexes_for_keys return [self._keymap[key][0] for key in keys] File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/cursor.py", line 666, in <listcomp> return [self._keymap[key][0] for key in keys] KeyError: Column('id', Integer(), table=<ab_permission_view>, primary_key=True, nullable=False, default=Sequence('ab_permission_view_id_seq', metadata=MetaData())) The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask/app.py", line 1484, in full_dispatch_request rv = self.dispatch_request() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask/app.py", line 1469, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/security/decorators.py", line 98, in wraps if current_app.appbuilder.sm.is_item_public( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/security/manager.py", line 1518, in is_item_public permissions = self.get_public_permissions() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/security/sqla/manager.py", line 391, in get_public_permissions return role.permissions File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/attributes.py", line 487, in __get__ return self.impl.get(state, dict_) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/attributes.py", line 959, in get value = self._fire_loader_callables(state, key, passive) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/attributes.py", line 995, in _fire_loader_callables return self.callable_(state, passive) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/strategies.py", line 912, in _load_for_state return self._emit_lazyload( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/strategies.py", line 1046, in _emit_lazyload result = session.execute( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 1720, in execute result = compile_state_cls.orm_setup_cursor_result( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/context.py", line 349, in orm_setup_cursor_result return loading.instances(result, querycontext) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 88, in instances with util.safe_reraise(): File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__ compat.raise_( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ raise exception File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 69, in instances *[ File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 70, in <listcomp> query_entity.row_processor(context, cursor) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/context.py", line 2631, in row_processor _instance = loading._instance_processor( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 715, in _instance_processor primary_key_getter = result._tuple_getter(pk_cols) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 962, in _tuple_getter return self._metadata._row_as_tuple_getter(keys) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 106, in _row_as_tuple_getter indexes = self._indexes_for_keys(keys) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/cursor.py", line 669, in _indexes_for_keys CursorResultMetaData._key_fallback(self, ke.args[0], ke) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/cursor.py", line 628, in _key_fallback util.raise_( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ raise exception sqlalchemy.exc.NoSuchColumnError: Could not locate column in row for column 'ab_permission_view.id' 2025-10-25 13:13:31,681:ERROR:superset.views.error_handling:Could not locate column in row for column 'ab_permission_view.id' Traceback (most recent call last): File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/cursor.py", line 666, in _indexes_for_keys return [self._keymap[key][0] for key in keys] File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/cursor.py", line 666, in <listcomp> return [self._keymap[key][0] for key in keys] KeyError: Column('id', Integer(), table=<ab_permission_view>, primary_key=True, nullable=False, default=Sequence('ab_permission_view_id_seq', metadata=MetaData())) The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask/app.py", line 1484, in full_dispatch_request rv = self.dispatch_request() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask/app.py", line 1469, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/security/decorators.py", line 98, in wraps if current_app.appbuilder.sm.is_item_public( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/security/manager.py", line 1518, in is_item_public permissions = self.get_public_permissions() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/security/sqla/manager.py", line 391, in get_public_permissions return role.permissions File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/attributes.py", line 487, in __get__ return self.impl.get(state, dict_) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/attributes.py", line 959, in get value = self._fire_loader_callables(state, key, passive) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/attributes.py", line 995, in _fire_loader_callables return self.callable_(state, passive) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/strategies.py", line 912, in _load_for_state return self._emit_lazyload( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/strategies.py", line 1046, in _emit_lazyload result = session.execute( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 1720, in execute result = compile_state_cls.orm_setup_cursor_result( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/context.py", line 349, in orm_setup_cursor_result return loading.instances(result, querycontext) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 88, in instances with util.safe_reraise(): File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__ compat.raise_( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ raise exception File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 69, in instances *[ File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 70, in <listcomp> query_entity.row_processor(context, cursor) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/context.py", line 2631, in row_processor _instance = loading._instance_processor( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 715, in _instance_processor primary_key_getter = result._tuple_getter(pk_cols) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 962, in _tuple_getter return self._metadata._row_as_tuple_getter(keys) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 106, in _row_as_tuple_getter indexes = self._indexes_for_keys(keys) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/cursor.py", line 669, in _indexes_for_keys CursorResultMetaData._key_fallback(self, ke.args[0], ke) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/cursor.py", line 628, in _key_fallback util.raise_( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ raise exception sqlalchemy.exc.NoSuchColumnError: Could not locate column in row for column 'ab_permission_view.id' 127.0.0.1 - - [25/Oct/2025:13:13:31 +0800] "GET /api/v1/saved_query/?q=(filters:!((col:created_by,opr:rel_o_m,value:%271%27)),order_column:changed_on_delta_humanized,order_direction:desc,page:0,page_size:5) HTTP/1.1" 500 264 "http://localhost:8088/superset/welcome/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 2025-10-25 13:13:31,689:WARNING:superset.views.error_handling:Exception Traceback (most recent call last): File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/cursor.py", line 666, in _indexes_for_keys return [self._keymap[key][0] for key in keys] File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/cursor.py", line 666, in <listcomp> return [self._keymap[key][0] for key in keys] KeyError: Column('id', Integer(), table=<ab_role>, primary_key=True, nullable=False, default=Sequence('ab_role_id_seq', metadata=MetaData())) The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask/app.py", line 1484, in full_dispatch_request rv = self.dispatch_request() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask/app.py", line 1469, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/security/decorators.py", line 106, in wraps if current_app.appbuilder.sm.has_access( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/security/manager.py", line 1652, in has_access return self._has_view_access(g.user, permission_name, view_name) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/security/manager.py", line 1548, in _has_view_access roles = self.get_user_roles(user) File "/home/gapinyc/superset/superset/security/manager.py", line 2429, in get_user_roles return user.roles File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/attributes.py", line 487, in __get__ return self.impl.get(state, dict_) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/attributes.py", line 959, in get value = self._fire_loader_callables(state, key, passive) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/attributes.py", line 995, in _fire_loader_callables return self.callable_(state, passive) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/strategies.py", line 912, in _load_for_state return self._emit_lazyload( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/strategies.py", line 1046, in _emit_lazyload result = session.execute( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 1720, in execute result = compile_state_cls.orm_setup_cursor_result( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/context.py", line 349, in orm_setup_cursor_result return loading.instances(result, querycontext) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 88, in instances with util.safe_reraise(): File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__ compat.raise_( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ raise exception File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 69, in instances *[ File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 70, in <listcomp> query_entity.row_processor(context, cursor) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/context.py", line 2631, in row_processor _instance = loading._instance_processor( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 715, in _instance_processor primary_key_getter = result._tuple_getter(pk_cols) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 962, in _tuple_getter return self._metadata._row_as_tuple_getter(keys) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 106, in _row_as_tuple_getter indexes = self._indexes_for_keys(keys) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/cursor.py", line 669, in _indexes_for_keys CursorResultMetaData._key_fallback(self, ke.args[0], ke) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/cursor.py", line 628, in _key_fallback util.raise_( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ raise exception sqlalchemy.exc.NoSuchColumnError: Could not locate column in row for column 'ab_role.id' 2025-10-25 13:13:31,695:ERROR:superset.views.error_handling:Could not locate column in row for column 'ab_role.id' Traceback (most recent call last): File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/cursor.py", line 666, in _indexes_for_keys return [self._keymap[key][0] for key in keys] File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/cursor.py", line 666, in <listcomp> return [self._keymap[key][0] for key in keys] KeyError: Column('id', Integer(), table=<ab_role>, primary_key=True, nullable=False, default=Sequence('ab_role_id_seq', metadata=MetaData())) The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask/app.py", line 1484, in full_dispatch_request rv = self.dispatch_request() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask/app.py", line 1469, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/security/decorators.py", line 106, in wraps if current_app.appbuilder.sm.has_access( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/security/manager.py", line 1652, in has_access return self._has_view_access(g.user, permission_name, view_name) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/security/manager.py", line 1548, in _has_view_access roles = self.get_user_roles(user) File "/home/gapinyc/superset/superset/security/manager.py", line 2429, in get_user_roles return user.roles File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/attributes.py", line 487, in __get__ return self.impl.get(state, dict_) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/attributes.py", line 959, in get value = self._fire_loader_callables(state, key, passive) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/attributes.py", line 995, in _fire_loader_callables return self.callable_(state, passive) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/strategies.py", line 912, in _load_for_state return self._emit_lazyload( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/strategies.py", line 1046, in _emit_lazyload result = session.execute( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 1720, in execute result = compile_state_cls.orm_setup_cursor_result( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/context.py", line 349, in orm_setup_cursor_result return loading.instances(result, querycontext) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 88, in instances with util.safe_reraise(): File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__ compat.raise_( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ raise exception File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 69, in instances *[ File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 70, in <listcomp> query_entity.row_processor(context, cursor) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/context.py", line 2631, in row_processor _instance = loading._instance_processor( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 715, in _instance_processor primary_key_getter = result._tuple_getter(pk_cols) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 962, in _tuple_getter return self._metadata._row_as_tuple_getter(keys) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 106, in _row_as_tuple_getter indexes = self._indexes_for_keys(keys) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/cursor.py", line 669, in _indexes_for_keys CursorResultMetaData._key_fallback(self, ke.args[0], ke) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/cursor.py", line 628, in _key_fallback util.raise_( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ raise exception sqlalchemy.exc.NoSuchColumnError: Could not locate column in row for column 'ab_role.id' 2025-10-25 13:13:31,690:ERROR:superset.views.error_handling:Could not locate column in row for column 'count(*)' Traceback (most recent call last): File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/cursor.py", line 651, in _index_for_key rec = self._keymap[key] KeyError: <sqlalchemy.sql.functions.count at 0x71cc9ac32320; count> The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/gapinyc/superset/superset/views/error_handling.py", line 101, in wraps return f(self, *args, **kwargs) File "/home/gapinyc/superset/superset/views/base_api.py", line 487, in get_list_headless duration, response = time_function(super().get_list_headless, **kwargs) File "/home/gapinyc/superset/superset/utils/core.py", line 1369, in time_function response = func(*args, **kwargs) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/api/__init__.py", line 1632, in get_list_headless count, lst = self.datamodel.query( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/models/sqla/interface.py", line 501, in query count = self.query_count(query, filters, select_columns) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/models/sqla/interface.py", line 408, in query_count ).count() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/query.py", line 3176, in count return self._from_self(col).enable_eagerloads(False).scalar() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/query.py", line 2893, in scalar ret = self.one() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/query.py", line 2870, in one return self._iter().one() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/query.py", line 2916, in _iter result = self.session.execute( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 1720, in execute result = compile_state_cls.orm_setup_cursor_result( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/context.py", line 349, in orm_setup_cursor_result return loading.instances(result, querycontext) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 88, in instances with util.safe_reraise(): File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__ compat.raise_( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ raise exception File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 69, in instances *[ File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 70, in <listcomp> query_entity.row_processor(context, cursor) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/context.py", line 2911, in row_processor getter = result._getter(column) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 951, in _getter return self._metadata._getter(key, raiseerr) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 98, in _getter index = self._index_for_key(key, raiseerr) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/cursor.py", line 653, in _index_for_key rec = self._key_fallback(key, ke, raiseerr) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/cursor.py", line 628, in _key_fallback util.raise_( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ raise exception sqlalchemy.exc.NoSuchColumnError: Could not locate column in row for column 'count(*)' 2025-10-25 13:13:31,702:ERROR:root:DBEventLogger failed to log event(s) 2025-10-25 13:13:31,703:WARNING:superset.views.error_handling:Exception Traceback (most recent call last): File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask/app.py", line 1484, in full_dispatch_request rv = self.dispatch_request() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask/app.py", line 1469, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/security/decorators.py", line 98, in wraps if current_app.appbuilder.sm.is_item_public( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/security/manager.py", line 1518, in is_item_public permissions = self.get_public_permissions() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/security/sqla/manager.py", line 391, in get_public_permissions return role.permissions File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/attributes.py", line 487, in __get__ return self.impl.get(state, dict_) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/attributes.py", line 959, in get value = self._fire_loader_callables(state, key, passive) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/attributes.py", line 995, in _fire_loader_callables return self.callable_(state, passive) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/strategies.py", line 912, in _load_for_state return self._emit_lazyload( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/strategies.py", line 1046, in _emit_lazyload result = session.execute( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 1720, in execute result = compile_state_cls.orm_setup_cursor_result( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/context.py", line 349, in orm_setup_cursor_result return loading.instances(result, querycontext) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 88, in instances with util.safe_reraise(): File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__ compat.raise_( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ raise exception File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 69, in instances *[ File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 70, in <listcomp> query_entity.row_processor(context, cursor) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/context.py", line 2631, in row_processor _instance = loading._instance_processor( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 715, in _instance_processor primary_key_getter = result._tuple_getter(pk_cols) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 962, in _tuple_getter return self._metadata._row_as_tuple_getter(keys) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 106, in _row_as_tuple_getter indexes = self._indexes_for_keys(keys) AttributeError: '_NoResultMetaData' object has no attribute '_indexes_for_keys'. Did you mean: '_index_for_key'? 2025-10-25 13:13:31,704:ERROR:superset.views.error_handling:'_NoResultMetaData' object has no attribute '_indexes_for_keys' Traceback (most recent call last): File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask/app.py", line 1484, in full_dispatch_request rv = self.dispatch_request() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask/app.py", line 1469, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/security/decorators.py", line 98, in wraps if current_app.appbuilder.sm.is_item_public( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/security/manager.py", line 1518, in is_item_public permissions = self.get_public_permissions() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_appbuilder/security/sqla/manager.py", line 391, in get_public_permissions return role.permissions File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/attributes.py", line 487, in __get__ return self.impl.get(state, dict_) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/attributes.py", line 959, in get value = self._fire_loader_callables(state, key, passive) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/attributes.py", line 995, in _fire_loader_callables return self.callable_(state, passive) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/strategies.py", line 912, in _load_for_state return self._emit_lazyload( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/strategies.py", line 1046, in _emit_lazyload result = session.execute( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 1720, in execute result = compile_state_cls.orm_setup_cursor_result( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/context.py", line 349, in orm_setup_cursor_result return loading.instances(result, querycontext) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 88, in instances with util.safe_reraise(): File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__ compat.raise_( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ raise exception File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 69, in instances *[ File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 70, in <listcomp> query_entity.row_processor(context, cursor) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/context.py", line 2631, in row_processor _instance = loading._instance_processor( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/loading.py", line 715, in _instance_processor primary_key_getter = result._tuple_getter(pk_cols) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 962, in _tuple_getter return self._metadata._row_as_tuple_getter(keys) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/result.py", line 106, in _row_as_tuple_getter indexes = self._indexes_for_keys(keys) AttributeError: '_NoResultMetaData' object has no attribute '_indexes_for_keys'. Did you mean: '_index_for_key'? 2025-10-25 13:13:31,702:ERROR:root:(pymysql.err.OperationalError) (2014, 'Command Out of Sync') (Background on this error at: https://sqlalche.me/e/14/e3q8) Traceback (most recent call last): File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1094, in _commit_impl self.engine.dialect.do_commit(self.connection) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 686, in do_commit dbapi_connection.commit() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/connections.py", line 495, in commit self._read_ok_packet() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/connections.py", line 467, in _read_ok_packet raise err.OperationalError( pymysql.err.OperationalError: (2014, 'Command Out of Sync') The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/gapinyc/superset/superset/utils/log.py", line 407, in log db.session.commit() # pylint: disable=consider-using-transaction File "<string>", line 2, in commit File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 1454, in commit self._transaction.commit(_to_root=self.future) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 839, in commit trans.commit() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2469, in commit self._do_commit() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2659, in _do_commit self._connection_commit_impl() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2630, in _connection_commit_impl self.connection._commit_impl() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1096, in _commit_impl self._handle_dbapi_exception(e, None, None, None, None) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2134, in _handle_dbapi_exception util.raise_( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ raise exception File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1094, in _commit_impl self.engine.dialect.do_commit(self.connection) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 686, in do_commit dbapi_connection.commit() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/connections.py", line 495, in commit self._read_ok_packet() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/connections.py", line 467, in _read_ok_packet raise err.OperationalError( sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2014, 'Command Out of Sync') (Background on this error at: https://sqlalche.me/e/14/e3q8) 127.0.0.1 - - [25/Oct/2025:13:13:31 +0800] "GET /api/v1/dashboard/?q=(filters:!((col:owners,opr:rel_m_m,value:%271%27)),order_column:changed_on_delta_humanized,order_direction:desc,page:0,page_size:5) HTTP/1.1" 500 65 "http://localhost:8088/superset/welcome/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" [2025-10-25 13:13:31 +0800] [19412] [ERROR] Error handling request /api/v1/chart/?q=(filters:!((col:owners,opr:rel_m_m,value:%271%27)),order_column:changed_on_delta_humanized,order_direction:desc,page:0,page_size:5) Traceback (most recent call last): File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1062, in _rollback_impl self.engine.dialect.do_rollback(self.connection) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 683, in do_rollback dbapi_connection.rollback() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/connections.py", line 505, in rollback self._read_ok_packet() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/connections.py", line 465, in _read_ok_packet pkt = self._read_packet() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/connections.py", line 751, in _read_packet packet_header = self._read_bytes(4) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/connections.py", line 805, in _read_bytes raise err.OperationalError( pymysql.err.OperationalError: (2013, 'Lost connection to MySQL server during query') The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/gunicorn/workers/gthread.py", line 281, in handle keepalive = self.handle_request(req, conn) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/gunicorn/workers/gthread.py", line 333, in handle_request respiter = self.wsgi(environ, resp.start_response) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask/app.py", line 2213, in __call__ return self.wsgi_app(environ, start_response) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask/app.py", line 2206, in wsgi_app ctx.pop(error) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask/ctx.py", line 417, in pop app_ctx.pop(exc) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask/ctx.py", line 255, in pop self.app.do_teardown_appcontext(exc) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask/app.py", line 2063, in do_teardown_appcontext self.ensure_sync(func)(exc) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/flask_sqlalchemy/__init__.py", line 899, in shutdown_session self.session.remove() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/scoping.py", line 181, in remove self.registry().close() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 1816, in close self._close_impl(invalidate=False) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 1858, in _close_impl transaction.close(invalidate) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 926, in close transaction.close() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2426, in close self._do_close() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2649, in _do_close self._close_impl() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2635, in _close_impl self._connection_rollback_impl() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2627, in _connection_rollback_impl self.connection._rollback_impl() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1064, in _rollback_impl self._handle_dbapi_exception(e, None, None, None, None) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2134, in _handle_dbapi_exception util.raise_( File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ raise exception File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1062, in _rollback_impl self.engine.dialect.do_rollback(self.connection) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 683, in do_rollback dbapi_connection.rollback() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/connections.py", line 505, in rollback self._read_ok_packet() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/connections.py", line 465, in _read_ok_packet pkt = self._read_packet() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/connections.py", line 751, in _read_packet packet_header = self._read_bytes(4) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/connections.py", line 805, in _read_bytes raise err.OperationalError( sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2013, 'Lost connection to MySQL server during query') (Background on this error at: https://sqlalche.me/e/14/e3q8) 127.0.0.1 - - [25/Oct/2025:13:13:31 +0800] "GET /api/v1/chart/?q=(filters:!((col:owners,opr:rel_m_m,value:%271%27)),order_column:changed_on_delta_humanized,order_direction:desc,page:0,page_size:5) HTTP/1.1" 500 0 "-" "-" 2025-10-25 13:13:31,706:ERROR:sqlalchemy.pool.impl.QueuePool:Exception during reset or similar Traceback (most recent call last): File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 763, in _finalize_fairy fairy._reset(pool, transaction_was_reset) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/pool/base.py", line 1038, in _reset pool._dialect.do_rollback(self) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 683, in do_rollback dbapi_connection.rollback() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/connections.py", line 505, in rollback self._read_ok_packet() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/connections.py", line 465, in _read_ok_packet pkt = self._read_packet() File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/connections.py", line 751, in _read_packet packet_header = self._read_bytes(4) File "/home/gapinyc/superset/venv/lib/python3.10/site-packages/pymysql/connections.py", line 805, in _read_bytes raise err.OperationalError( pymysql.err.OperationalError: (2013, 'Lost connection to MySQL server during query') 127.0.0.1 - - [25/Oct/2025:13:13:31 +0800] "GET /api/v1/database/?q=(filters:!((col:allow_file_upload,opr:upload_is_enabled,value:!t))) HTTP/1.1" 500 262 "http://localhost:8088/superset/welcome/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 127.0.0.1 - - [25/Oct/2025:13:13:31 +0800] "GET /api/v1/log/recent_activity/?q=(distinct:!f,page_size:24) HTTP/1.1" 200 14 "http://localhost:8088/superset/welcome/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 127.0.0.1 - - [25/Oct/2025:13:13:31 +0800] "GET /api/v1/database/?q=(filters:!((col:database_name,opr:neq,value:examples))) HTTP/1.1" 200 615 "http://localhost:8088/superset/welcome/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 127.0.0.1 - - [25/Oct/2025:13:13:31 +0800] "GET /api/v1/dashboard/?q=(filters:!(),order_column:changed_on_delta_humanized,order_direction:desc,page:0,page_size:5) HTTP/1.1" 200 547 "http://localhost:8088/superset/welcome/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 127.0.0.1 - - [25/Oct/2025:13:13:31 +0800] "GET /api/v1/chart/?q=(filters:!(),order_column:changed_on_delta_humanized,order_direction:desc,page:0,page_size:5) HTTP/1.1" 200 797 "http://localhost:8088/superset/welcome/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 127.0.0.1 - - [25/Oct/2025:13:13:31 +0800] "GET /api/v1/chart/_info?q=(keys:!(permissions)) HTTP/1.1" 200 74 "http://localhost:8088/superset/welcome/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 127.0.0.1 - - [25/Oct/2025:13:13:32 +0800] "GET /api/v1/dashboard/_info?q=(keys:!(permissions)) HTTP/1.1" 200 147 "http://localhost:8088/superset/welcome/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" 127.0.0.1 - - [25/Oct/2025:13:13:32 +0800] "POST /superset/log/?explode=events HTTP/1.1" 200 9 "http://localhost:8088/superset/welcome/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0"
10-26
gapinyc@DESKTOP-9QS7RL5:~/superset-prod$ docker logs superset_app [2025-10-21 10:01:33 +0000] [1] [INFO] Starting gunicorn 23.0.0 [2025-10-21 10:01:33 +0000] [1] [INFO] Listening at: http://0.0.0.0:8088 (1) [2025-10-21 10:01:33 +0000] [1] [INFO] Using worker: gevent [2025-10-21 10:01:33 +0000] [7] [INFO] Booting worker with pid: 7 [2025-10-21 10:01:33 +0000] [8] [INFO] Booting worker with pid: 8 [2025-10-21 10:01:33 +0000] [9] [INFO] Booting worker with pid: 9 [2025-10-21 10:01:33 +0000] [10] [INFO] Booting worker with pid: 10 Loaded your LOCAL configuration at [/etc/superset/superset_config.py] Loaded your LOCAL configuration at [/etc/superset/superset_config.py] Loaded your LOCAL configuration at [/etc/superset/superset_config.py] Loaded your LOCAL configuration at [/etc/superset/superset_config.py] 2025-10-21 10:01:38,497:INFO:superset.initialization:Setting database isolation level to READ COMMITTED 2025-10-21 10:01:38,499:INFO:superset.initialization:Setting database isolation level to READ COMMITTED 2025-10-21 10:01:38,500:INFO:superset.initialization:Setting database isolation level to READ COMMITTED /app/.venv/lib/python3.10/site-packages/flask_limiter/extension.py:333: UserWarning: Using the in-memory storage for tracking rate limits as no storage was explicitly specified. This is not recommended for production use. See: https://flask-limiter.readthedocs.io#configuring-a-storage-backend for documentation about configuring the storage backend. warnings.warn( /app/.venv/lib/python3.10/site-packages/flask_limiter/extension.py:333: UserWarning: Using the in-memory storage for tracking rate limits as no storage was explicitly specified. This is not recommended for production use. See: https://flask-limiter.readthedocs.io#configuring-a-storage-backend for documentation about configuring the storage backend. warnings.warn( /app/.venv/lib/python3.10/site-packages/flask_limiter/extension.py:333: UserWarning: Using the in-memory storage for tracking rate limits as no storage was explicitly specified. This is not recommended for production use. See: https://flask-limiter.readthedocs.io#configuring-a-storage-backend for documentation about configuring the storage backend. warnings.warn( 2025-10-21 10:01:38,513:INFO:superset.initialization:Setting database isolation level to READ COMMITTED /app/.venv/lib/python3.10/site-packages/flask_limiter/extension.py:333: UserWarning: Using the in-memory storage for tracking rate limits as no storage was explicitly specified. This is not recommended for production use. See: https://flask-limiter.readthedocs.io#configuring-a-storage-backend for documentation about configuring the storage backend. warnings.warn( 2025-10-21 10:01:38,606:ERROR:flask_appbuilder.security.sqla.manager:DB Creation and initialization failed: (pymysql.err.OperationalError) (1050, "Table 'ab_permission' already exists") [SQL: CREATE TABLE ab_permission ( id INTEGER NOT NULL AUTO_INCREMENT, name VARCHAR(100) NOT NULL, PRIMARY KEY (id), UNIQUE (name) ) ] (Background on this error at: https://sqlalche.me/e/14/e3q8) 2025-10-21 10:01:38,606:ERROR:flask_appbuilder.security.sqla.manager:DB Creation and initialization failed: (pymysql.err.OperationalError) (1050, "Table 'ab_permission' already exists") [SQL: CREATE TABLE ab_permission ( id INTEGER NOT NULL AUTO_INCREMENT, name VARCHAR(100) NOT NULL, PRIMARY KEY (id), UNIQUE (name) ) ] (Background on this error at: https://sqlalche.me/e/14/e3q8) 2025-10-21 10:01:38,606:ERROR:flask_appbuilder.security.sqla.manager:DB Creation and initialization failed: (pymysql.err.OperationalError) (1050, "Table 'ab_permission' already exists") [SQL: CREATE TABLE ab_permission ( id INTEGER NOT NULL AUTO_INCREMENT, name VARCHAR(100) NOT NULL, PRIMARY KEY (id), UNIQUE (name) ) ] (Background on this error at: https://sqlalche.me/e/14/e3q8) [2025-10-21 10:01:38 +0000] [9] [INFO] Worker exiting (pid: 9) [2025-10-21 10:01:38 +0000] [7] [INFO] Worker exiting (pid: 7) [2025-10-21 10:01:38 +0000] [10] [INFO] Worker exiting (pid: 10) 2025-10-21 10:01:39,148:INFO:superset.utils.screenshots:No PIL installation found [2025-10-21 10:01:39 +0000] [1] [ERROR] Worker (pid:7) exited with code 1 [2025-10-21 10:01:39 +0000] [1] [ERROR] Worker (pid:7) exited with code 1. [2025-10-21 10:01:39 +0000] [1] [ERROR] Worker (pid:9) exited with code 1 [2025-10-21 10:01:39 +0000] [1] [ERROR] Worker (pid:9) exited with code 1. [2025-10-21 10:01:39 +0000] [1] [ERROR] Worker (pid:10) exited with code 1 [2025-10-21 10:01:39 +0000] [1] [ERROR] Worker (pid:10) exited with code 1. [2025-10-21 10:01:39 +0000] [111] [INFO] Booting worker with pid: 111 [2025-10-21 10:01:39 +0000] [112] [INFO] Booting worker with pid: 112 [2025-10-21 10:01:39 +0000] [113] [INFO] Booting worker with pid: 113 2025-10-21 10:01:39,780:INFO:superset.utils.pdf:No PIL installation found 2025-10-21 10:01:40,883:WARNING:root:Failed to add user to db session: Class 'werkzeug.local.LocalProxy' is not mapped 2025-10-21 10:01:40,891:ERROR:root:DBEventLogger failed to log event(s) 2025-10-21 10:01:40,891:ERROR:root:(pymysql.err.ProgrammingError) (1146, "Table 'superset.logs' doesn't exist") [SQL: INSERT INTO logs (action, json, dttm, duration_ms) VALUES (%(action)s, %(json)s, %(dttm)s, %(duration_ms)s)] [parameters: {'action': 'welcome', 'json': '{"path": "/superset/welcome/", "object_ref": "Superset.welcome"}', 'dttm': datetime.datetime(2025, 10, 21, 10, 1, 40, 888732), 'duration_ms': 0}] (Background on this error at: https://sqlalche.me/e/14/f405) Traceback (most recent call last): File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1910, in _execute_context self.dialect.do_execute( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 736, in do_execute cursor.execute(statement, parameters) File "/app/.venv/lib/python3.10/site-packages/pymysql/cursors.py", line 153, in execute result = self._query(query) File "/app/.venv/lib/python3.10/site-packages/pymysql/cursors.py", line 322, in _query conn.query(q) File "/app/.venv/lib/python3.10/site-packages/pymysql/connections.py", line 575, in query self._affected_rows = self._read_query_result(unbuffered=unbuffered) File "/app/.venv/lib/python3.10/site-packages/pymysql/connections.py", line 826, in _read_query_result result.read() File "/app/.venv/lib/python3.10/site-packages/pymysql/connections.py", line 1203, in read first_packet = self.connection._read_packet() File "/app/.venv/lib/python3.10/site-packages/pymysql/connections.py", line 782, in _read_packet packet.raise_for_error() File "/app/.venv/lib/python3.10/site-packages/pymysql/protocol.py", line 219, in raise_for_error err.raise_mysql_exception(self._data) File "/app/.venv/lib/python3.10/site-packages/pymysql/err.py", line 150, in raise_mysql_exception raise errorclass(errno, errval) pymysql.err.ProgrammingError: (1146, "Table 'superset.logs' doesn't exist") The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/app/superset/utils/log.py", line 406, in log db.session.bulk_save_objects(logs) File "<string>", line 2, in bulk_save_objects File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 3705, in bulk_save_objects self._bulk_save_mappings( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 3912, in _bulk_save_mappings with util.safe_reraise(): File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__ compat.raise_( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ raise exception File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 3901, in _bulk_save_mappings persistence._bulk_insert( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/orm/persistence.py", line 107, in _bulk_insert _emit_insert_statements( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/orm/persistence.py", line 1097, in _emit_insert_statements c = connection._execute_20( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1710, in _execute_20 return meth(self, args_10style, kwargs_10style, execution_options) File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", line 334, in _execute_on_connection return connection._execute_clauseelement( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1577, in _execute_clauseelement ret = self._execute_context( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1953, in _execute_context self._handle_dbapi_exception( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2134, in _handle_dbapi_exception util.raise_( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ raise exception File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1910, in _execute_context self.dialect.do_execute( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 736, in do_execute cursor.execute(statement, parameters) File "/app/.venv/lib/python3.10/site-packages/pymysql/cursors.py", line 153, in execute result = self._query(query) File "/app/.venv/lib/python3.10/site-packages/pymysql/cursors.py", line 322, in _query conn.query(q) File "/app/.venv/lib/python3.10/site-packages/pymysql/connections.py", line 575, in query self._affected_rows = self._read_query_result(unbuffered=unbuffered) File "/app/.venv/lib/python3.10/site-packages/pymysql/connections.py", line 826, in _read_query_result result.read() File "/app/.venv/lib/python3.10/site-packages/pymysql/connections.py", line 1203, in read first_packet = self.connection._read_packet() File "/app/.venv/lib/python3.10/site-packages/pymysql/connections.py", line 782, in _read_packet packet.raise_for_error() File "/app/.venv/lib/python3.10/site-packages/pymysql/protocol.py", line 219, in raise_for_error err.raise_mysql_exception(self._data) File "/app/.venv/lib/python3.10/site-packages/pymysql/err.py", line 150, in raise_mysql_exception raise errorclass(errno, errval) sqlalchemy.exc.ProgrammingError: (pymysql.err.ProgrammingError) (1146, "Table 'superset.logs' doesn't exist") [SQL: INSERT INTO logs (action, json, dttm, duration_ms) VALUES (%(action)s, %(json)s, %(dttm)s, %(duration_ms)s)] [parameters: {'action': 'welcome', 'json': '{"path": "/superset/welcome/", "object_ref": "Superset.welcome"}', 'dttm': datetime.datetime(2025, 10, 21, 10, 1, 40, 888732), 'duration_ms': 0}] (Background on this error at: https://sqlalche.me/e/14/f405) Loaded your LOCAL configuration at [/etc/superset/superset_config.py] Loaded your LOCAL configuration at [/etc/superset/superset_config.py] Loaded your LOCAL configuration at [/etc/superset/superset_config.py] 2025-10-21 10:01:43,495:INFO:superset.initialization:Setting database isolation level to READ COMMITTED /app/.venv/lib/python3.10/site-packages/flask_limiter/extension.py:333: UserWarning: Using the in-memory storage for tracking rate limits as no storage was explicitly specified. This is not recommended for production use. See: https://flask-limiter.readthedocs.io#configuring-a-storage-backend for documentation about configuring the storage backend. warnings.warn( 2025-10-21 10:01:43,515:INFO:superset.initialization:Setting database isolation level to READ COMMITTED /app/.venv/lib/python3.10/site-packages/flask_limiter/extension.py:333: UserWarning: Using the in-memory storage for tracking rate limits as no storage was explicitly specified. This is not recommended for production use. See: https://flask-limiter.readthedocs.io#configuring-a-storage-backend for documentation about configuring the storage backend. warnings.warn( 2025-10-21 10:01:43,528:INFO:superset.initialization:Setting database isolation level to READ COMMITTED /app/.venv/lib/python3.10/site-packages/flask_limiter/extension.py:333: UserWarning: Using the in-memory storage for tracking rate limits as no storage was explicitly specified. This is not recommended for production use. See: https://flask-limiter.readthedocs.io#configuring-a-storage-backend for documentation about configuring the storage backend. warnings.warn( 2025-10-21 10:01:43,621:INFO:superset.utils.screenshots:No PIL installation found 2025-10-21 10:01:43,644:INFO:superset.utils.screenshots:No PIL installation found 2025-10-21 10:01:43,649:INFO:superset.utils.screenshots:No PIL installation found 2025-10-21 10:01:44,102:INFO:superset.utils.pdf:No PIL installation found 2025-10-21 10:01:44,105:INFO:superset.utils.pdf:No PIL installation found 2025-10-21 10:01:44,121:INFO:superset.utils.pdf:No PIL installation found 2025-10-21 10:02:17,194:WARNING:root:Failed to add user to db session: Class 'werkzeug.local.LocalProxy' is not mapped 2025-10-21 10:02:17,203:ERROR:root:DBEventLogger failed to log event(s) 2025-10-21 10:02:17,203:ERROR:root:(pymysql.err.ProgrammingError) (1146, "Table 'superset.logs' doesn't exist") [SQL: INSERT INTO logs (action, json, dttm, duration_ms) VALUES (%(action)s, %(json)s, %(dttm)s, %(duration_ms)s)] [parameters: {'action': 'welcome', 'json': '{"path": "/superset/welcome/", "object_ref": "Superset.welcome"}', 'dttm': datetime.datetime(2025, 10, 21, 10, 2, 17, 200564), 'duration_ms': 0}] (Background on this error at: https://sqlalche.me/e/14/f405) Traceback (most recent call last): File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1910, in _execute_context self.dialect.do_execute( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 736, in do_execute cursor.execute(statement, parameters) File "/app/.venv/lib/python3.10/site-packages/pymysql/cursors.py", line 153, in execute result = self._query(query) File "/app/.venv/lib/python3.10/site-packages/pymysql/cursors.py", line 322, in _query conn.query(q) File "/app/.venv/lib/python3.10/site-packages/pymysql/connections.py", line 575, in query self._affected_rows = self._read_query_result(unbuffered=unbuffered) File "/app/.venv/lib/python3.10/site-packages/pymysql/connections.py", line 826, in _read_query_result result.read() File "/app/.venv/lib/python3.10/site-packages/pymysql/connections.py", line 1203, in read first_packet = self.connection._read_packet() File "/app/.venv/lib/python3.10/site-packages/pymysql/connections.py", line 782, in _read_packet packet.raise_for_error() File "/app/.venv/lib/python3.10/site-packages/pymysql/protocol.py", line 219, in raise_for_error err.raise_mysql_exception(self._data) File "/app/.venv/lib/python3.10/site-packages/pymysql/err.py", line 150, in raise_mysql_exception raise errorclass(errno, errval) pymysql.err.ProgrammingError: (1146, "Table 'superset.logs' doesn't exist") The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/app/superset/utils/log.py", line 406, in log db.session.bulk_save_objects(logs) File "<string>", line 2, in bulk_save_objects File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 3705, in bulk_save_objects self._bulk_save_mappings( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 3912, in _bulk_save_mappings with util.safe_reraise(): File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__ compat.raise_( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ raise exception File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 3901, in _bulk_save_mappings persistence._bulk_insert( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/orm/persistence.py", line 107, in _bulk_insert _emit_insert_statements( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/orm/persistence.py", line 1097, in _emit_insert_statements c = connection._execute_20( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1710, in _execute_20 return meth(self, args_10style, kwargs_10style, execution_options) File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", line 334, in _execute_on_connection return connection._execute_clauseelement( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1577, in _execute_clauseelement ret = self._execute_context( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1953, in _execute_context self._handle_dbapi_exception( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2134, in _handle_dbapi_exception util.raise_( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ raise exception File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1910, in _execute_context self.dialect.do_execute( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 736, in do_execute cursor.execute(statement, parameters) File "/app/.venv/lib/python3.10/site-packages/pymysql/cursors.py", line 153, in execute result = self._query(query) File "/app/.venv/lib/python3.10/site-packages/pymysql/cursors.py", line 322, in _query conn.query(q) File "/app/.venv/lib/python3.10/site-packages/pymysql/connections.py", line 575, in query self._affected_rows = self._read_query_result(unbuffered=unbuffered) File "/app/.venv/lib/python3.10/site-packages/pymysql/connections.py", line 826, in _read_query_result result.read() File "/app/.venv/lib/python3.10/site-packages/pymysql/connections.py", line 1203, in read first_packet = self.connection._read_packet() File "/app/.venv/lib/python3.10/site-packages/pymysql/connections.py", line 782, in _read_packet packet.raise_for_error() File "/app/.venv/lib/python3.10/site-packages/pymysql/protocol.py", line 219, in raise_for_error err.raise_mysql_exception(self._data) File "/app/.venv/lib/python3.10/site-packages/pymysql/err.py", line 150, in raise_mysql_exception raise errorclass(errno, errval) sqlalchemy.exc.ProgrammingError: (pymysql.err.ProgrammingError) (1146, "Table 'superset.logs' doesn't exist") [SQL: INSERT INTO logs (action, json, dttm, duration_ms) VALUES (%(action)s, %(json)s, %(dttm)s, %(duration_ms)s)] [parameters: {'action': 'welcome', 'json': '{"path": "/superset/welcome/", "object_ref": "Superset.welcome"}', 'dttm': datetime.datetime(2025, 10, 21, 10, 2, 17, 200564), 'duration_ms': 0}] (Background on this error at: https://sqlalche.me/e/14/f405) 2025-10-21 10:02:22,645:WARNING:root:Failed to add user to db session: Class 'werkzeug.local.LocalProxy' is not mapped 2025-10-21 10:02:22,655:ERROR:root:DBEventLogger failed to log event(s) 2025-10-21 10:02:22,655:ERROR:root:(pymysql.err.ProgrammingError) (1146, "Table 'superset.logs' doesn't exist") [SQL: INSERT INTO logs (action, json, dttm, duration_ms) VALUES (%(action)s, %(json)s, %(dttm)s, %(duration_ms)s)] [parameters: {'action': 'welcome', 'json': '{"path": "/superset/welcome/", "object_ref": "Superset.welcome"}', 'dttm': datetime.datetime(2025, 10, 21, 10, 2, 22, 652530), 'duration_ms': 1}] (Background on this error at: https://sqlalche.me/e/14/f405) Traceback (most recent call last): File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1910, in _execute_context self.dialect.do_execute( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 736, in do_execute cursor.execute(statement, parameters) File "/app/.venv/lib/python3.10/site-packages/pymysql/cursors.py", line 153, in execute result = self._query(query) File "/app/.venv/lib/python3.10/site-packages/pymysql/cursors.py", line 322, in _query conn.query(q) File "/app/.venv/lib/python3.10/site-packages/pymysql/connections.py", line 575, in query self._affected_rows = self._read_query_result(unbuffered=unbuffered) File "/app/.venv/lib/python3.10/site-packages/pymysql/connections.py", line 826, in _read_query_result result.read() File "/app/.venv/lib/python3.10/site-packages/pymysql/connections.py", line 1203, in read first_packet = self.connection._read_packet() File "/app/.venv/lib/python3.10/site-packages/pymysql/connections.py", line 782, in _read_packet packet.raise_for_error() File "/app/.venv/lib/python3.10/site-packages/pymysql/protocol.py", line 219, in raise_for_error err.raise_mysql_exception(self._data) File "/app/.venv/lib/python3.10/site-packages/pymysql/err.py", line 150, in raise_mysql_exception raise errorclass(errno, errval) pymysql.err.ProgrammingError: (1146, "Table 'superset.logs' doesn't exist") The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/app/superset/utils/log.py", line 406, in log db.session.bulk_save_objects(logs) File "<string>", line 2, in bulk_save_objects File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 3705, in bulk_save_objects self._bulk_save_mappings( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 3912, in _bulk_save_mappings with util.safe_reraise(): File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/util/langhelpers.py", line 70, in __exit__ compat.raise_( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ raise exception File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 3901, in _bulk_save_mappings persistence._bulk_insert( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/orm/persistence.py", line 107, in _bulk_insert _emit_insert_statements( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/orm/persistence.py", line 1097, in _emit_insert_statements c = connection._execute_20( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1710, in _execute_20 return meth(self, args_10style, kwargs_10style, execution_options) File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", line 334, in _execute_on_connection return connection._execute_clauseelement( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1577, in _execute_clauseelement ret = self._execute_context( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1953, in _execute_context self._handle_dbapi_exception( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2134, in _handle_dbapi_exception util.raise_( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_ raise exception File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1910, in _execute_context self.dialect.do_execute( File "/app/.venv/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 736, in do_execute cursor.execute(statement, parameters) File "/app/.venv/lib/python3.10/site-packages/pymysql/cursors.py", line 153, in execute result = self._query(query) File "/app/.venv/lib/python3.10/site-packages/pymysql/cursors.py", line 322, in _query conn.query(q) File "/app/.venv/lib/python3.10/site-packages/pymysql/connections.py", line 575, in query self._affected_rows = self._read_query_result(unbuffered=unbuffered) File "/app/.venv/lib/python3.10/site-packages/pymysql/connections.py", line 826, in _read_query_result result.read() File "/app/.venv/lib/python3.10/site-packages/pymysql/connections.py", line 1203, in read first_packet = self.connection._read_packet() File "/app/.venv/lib/python3.10/site-packages/pymysql/connections.py", line 782, in _read_packet packet.raise_for_error() File "/app/.venv/lib/python3.10/site-packages/pymysql/protocol.py", line 219, in raise_for_error err.raise_mysql_exception(self._data) File "/app/.venv/lib/python3.10/site-packages/pymysql/err.py", line 150, in raise_mysql_exception raise errorclass(errno, errval) sqlalchemy.exc.ProgrammingError: (pymysql.err.ProgrammingError) (1146, "Table 'superset.logs' doesn't exist") [SQL: INSERT INTO logs (action, json, dttm, duration_ms) VALUES (%(action)s, %(json)s, %(dttm)s, %(duration_ms)s)] [parameters: {'action': 'welcome', 'json': '{"path": "/superset/welcome/", "object_ref": "Superset.welcome"}', 'dttm': datetime.datetime(2025, 10, 21, 10, 2, 22, 652530), 'duration_ms': 1}] (Background on this error at: https://sqlalche.me/e/14/f405) gapinyc@DESKTOP-9QS7RL5:~/superset-prod$
10-22
<think>我们正在处理一个与SQLAlchemy和PostgreSQL相关的编程错误。用户遇到了`sqlalchemy.exc.ProgrammingError`(具体是`asyncpg`驱动的`DuplicateTableError`),错误信息表明关系`uq_user_review`已经存在。这个错误发生在尝试创建一个唯一约束(Unique Constraint)时。 首先,我们需要理解这个错误的原因。在PostgreSQL中,唯一约束是通过创建一个唯一索引来实现的。因此,当我们尝试创建一个已经存在的唯一约束时,PostgreSQL会抛出重复关系的错误(因为索引在内部被视为关系)。 在SQLAlchemy中,我们通常通过两种方式定义唯一约束: 1. 在列定义中直接使用`unique=True`。 2. 使用`UniqueConstraint`在表级别定义。 错误信息中提到的`uq_user_review`很可能是一个唯一约束的名称。在SQLAlchemy中,如果我们没有显式指定约束名称,那么它会自动生成一个。但是,这里我们看到了一个具体的名称`uq_user_review`,所以可能是用户显式指定的。 ### 错误原因分析 1. **重复执行创建约束的DDL语句**:可能是由于代码被多次运行,而约束已经存在。在数据库迁移脚本中,如果没有检查约束是否已经存在,就尝试创建,会导致此错误。 2. **约束名称冲突**:即使约束在不同的表上,如果名称相同,也会导致冲突(因为索引名在数据库中是全局的)。但通常我们会给约束加上表名前缀以避免这种情况。 ### 解决方案 1. **检查约束是否已经存在**:在创建约束之前,先检查该约束是否已经在数据库中存在。如果存在,则跳过创建。 2. **使用迁移工具**:如果使用Alembic等迁移工具,可以编写正确的迁移脚本,包括检查约束是否存在的逻辑。 3. **捕获异常并忽略**:捕获`DuplicateTableError`(或更通用的`ProgrammingError`)并忽略,但这种方法不够优雅,且可能掩盖其他错误。 ### 具体步骤 #### 方法1:在创建之前检查约束是否存在 我们可以通过查询PostgreSQL的系统表`pg_constraint`和`pg_indexes`来检查约束或索引是否存在。 例如,检查唯一约束是否存在: ```sql SELECT 1 FROM pg_constraint WHERE conname = 'uq_user_review'; ``` 或者检查索引是否存在(因为唯一约束会创建一个唯一索引): ```sql SELECT 1 FROM pg_indexes WHERE indexname = 'uq_user_review'; ``` 在SQLAlchemy中,我们可以执行原始SQL查询来检查。 #### 方法2:在Alembic迁移脚本中处理 如果使用Alembic,我们可以使用`op.create_unique_constraint`的`if_not_exists`参数(但注意,Alembic的`create_unique_constraint`并没有直接提供`if_not_exists`参数,因此我们需要自己实现检查)。 在Alembic中,我们可以这样操作: ```python def upgrade(): # 检查约束是否已经存在 inspector = inspect(engine) unique_constraints = inspector.get_unique_constraints("your_table_name") constraint_names = [uc['name'] for uc in unique_constraints] if 'uq_user_review' not in constraint_names: op.create_unique_constraint('uq_user_review', 'your_table_name', ['column1', 'column2']) ``` #### 方法3:捕获异常 在创建约束的代码中捕获异常: ```python from sqlalchemy.exc import ProgrammingError try: # 尝试创建约束 constraint = UniqueConstraint('column1', 'column2', name='uq_user_review') constraint.create(engine) except ProgrammingError as e: if "already exists" in str(e): # 忽略重复创建的错误 pass else: raise ``` ### 注意事项 - 在异步环境下(使用asyncpg),异常可能是`asyncpg.exceptions.DuplicateObjectError`(具体错误码为"42P07"表示重复表、索引等)。因此,我们可以捕获特定的异常。 ### 示例代码(使用SQLAlchemy Core) 假设我们有一个表`user_review`,我们想为`user_id`和`review_id`列添加一个唯一约束,约束名为`uq_user_review`。 ```python from sqlalchemy import create_engine, MetaData, Table, UniqueConstraint from sqlalchemy.exc import ProgrammingError # 假设engine已经创建 engine = create_engine("postgresql+asyncpg://user:password@localhost/dbname") metadata = MetaData() # 定义表结构(如果表已经存在,我们可以反射) user_review = Table('user_review', metadata, autoload_with=engine) # 创建唯一约束 constraint = UniqueConstraint('user_id', 'review_id', name='uq_user_review') try: constraint.create(engine) except ProgrammingError as e: # 检查错误信息,确认是重复约束 if "already exists" in str(e): print("约束已经存在,跳过创建") else: raise ``` ### 在异步环境中的处理 如果使用异步SQLAlchemy(`asyncpg`驱动),我们需要使用异步方式执行。另外,异常捕获可能需要更精确。 ```python from sqlalchemy import MetaData, Table, UniqueConstraint from sqlalchemy.exc import ProgrammingError from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession async_engine = create_async_engine("postgresql+asyncpg://user:password@localhost/dbname") metadata = MetaData() async with async_engine.connect() as conn: # 反射表 user_review = Table('user_review', metadata, autoload_with=async_engine) # 创建约束 constraint = UniqueConstraint('user_id', 'review_id', name='uq_user_review') try: await conn.run_sync(lambda conn: constraint.create(conn)) await conn.commit() except ProgrammingError as e: if "already exists" in str(e): print("约束已经存在,跳过创建") else: raise ``` ### 总结 处理此错误的关键在于避免重复创建已经存在的约束。我们可以通过先检查约束是否存在,或者捕获异常并忽略重复错误来实现。 ### 相关问题 1. 如何在SQLAlchemy中检查唯一约束是否已经存在? 2. 在Alembic迁移中如何处理重复约束创建的问题? 3. 异步SQLAlchemy中如何执行DDL语句? 4. PostgreSQL中如何列出所有唯一约束? 5. 如何为SQLAlchemy模型定义唯一约束?</think>### 问题分析:SQLAlchemy + PostgreSQL 唯一约束重复创建错误 您遇到的错误 `sqlalchemy.exc.ProgrammingError: (asyncpg.exceptions.DuplicateTableError) relation "uq_user_review" already exists` 是由于在 PostgreSQL 中重复创建同名的唯一约束导致的。以下是关键点解析: 1. **唯一约束的本质** 在 PostgreSQL 中,唯一约束(`UNIQUE CONSTRAINT`)本质上是创建一个唯一索引(`UNIQUE INDEX`)。当您尝试创建同名约束时,数据库会拒绝操作[^1]。 2. **错误触发场景** ```python # 示例:重复执行约束创建代码 from sqlalchemy import UniqueConstraint # 第一次执行:成功创建约束 UniqueConstraint('user_id', 'review_id', name='uq_user_review') # 第二次执行:抛出 DuplicateTableError UniqueConstraint('user_id', 'review_id', name='uq_user_review') ``` --- ### 解决方案:4种修复方法 #### 方法1:检查约束是否存在(推荐) ```python from sqlalchemy import inspect, DDL def create_constraint_if_not_exists(table_name, constraint_name, columns): inspector = inspect(engine) # 检查约束是否已存在 existing = any( con["name"] == constraint_name for con in inspector.get_unique_constraints(table_name) ) if not existing: # 异步执行DDL stmt = DDL( f"ALTER TABLE {table_name} " f"ADD CONSTRAINT {constraint_name} " f"UNIQUE ({', '.join(columns)})" ) await conn.execute(stmt) ``` #### 方法2:捕获异常后忽略 ```python from sqlalchemy.exc import ProgrammingError from asyncpg.exceptions import DuplicateTableError try: await conn.run_sync(lambda sync_conn: UniqueConstraint('user_id', 'review_id', name='uq_user_review').create(sync_conn) ) except ProgrammingError as e: if isinstance(e.orig, DuplicateTableError) and "uq_user_review" in str(e): print("约束已存在,跳过创建") else: raise ``` #### 方法3:动态生成约束名(避免冲突) ```python # 使用表名作为约束名前缀 table_name = "reviews" constraint_name = f"uq_{table_name}_{hash(tuple(columns))}" UniqueConstraint('user_id', 'review_id', name=constraint_name) ``` #### 方法4:通过Alembic迁移管理 ```python # 在Alembic迁移脚本中 def upgrade(): op.create_unique_constraint( "uq_user_review", "reviews", ["user_id", "review_id"], # 关键参数:检查存在性 if_not_exists=True ) ``` --- ### 根本原因与预防 1. **约束命名规则** PostgreSQL要求所有数据库对象(包括约束)在同一个schema中名称唯一。建议使用命名规范: ```markdown uq_<表名>_<字段1>_<字段2> ``` 2. **并发创建问题** 在高并发场景下,多个进程可能同时尝试创建约束。解决方案: ```sql -- 使用咨询锁 SELECT pg_advisory_lock(12345); -- 创建约束 ALTER TABLE ... ADD CONSTRAINT ... SELECT pg_advisory_unlock(12345); ``` 3. **元数据管理** 使用SQLAlchemy的`MetaData.reflect()`同步数据库状态: ```python metadata = MetaData() await metadata.reflect(bind=async_engine) ``` --- ### 验证是否修复 ```sql -- 检查约束是否存在 SELECT conname FROM pg_constraint WHERE conname = 'uq_user_review'; ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangvalue

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值