1141 lines
74 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

2025-09-05 15:19:24,600 - manual_migration - INFO - 开始手动添加 location_type 字段...
2025-09-05 15:19:24,601 - manual_migration - INFO - 开始添加 location_type 字段...
2025-09-05 15:19:24,633 - manual_migration - INFO - 正在添加 location_type 字段...
2025-09-05 15:19:24,670 - manual_migration - INFO - ✅ location_type 字段添加成功
2025-09-05 15:19:24,670 - manual_migration - INFO - 正在为现有记录设置默认值...
2025-09-05 15:19:24,670 - manual_migration - INFO - ✅ 已为 0 条记录设置为物理库位location_type = 1
2025-09-05 15:19:24,671 - manual_migration - INFO - 验证结果:总记录数 32物理库位 32逻辑库位 0
2025-09-05 15:19:24,671 - manual_migration - INFO - 🎉 location_type 字段添加完成!
2025-09-05 15:19:24,671 - manual_migration - INFO - 显示更新后的表结构:
2025-09-05 15:19:24,673 - manual_migration - INFO - vwed_operate_point_layer 表结构:
2025-09-05 15:19:24,673 - manual_migration - INFO - Field Type Null Key Default Extra
2025-09-05 15:19:24,673 - manual_migration - INFO - --------------------------------------------------------------------------------
2025-09-05 15:19:24,673 - manual_migration - INFO - id char(64) NO PRI None
2025-09-05 15:19:24,673 - manual_migration - INFO - operate_point_id char(64) NO MUL None
2025-09-05 15:19:24,673 - manual_migration - INFO - station_name varchar(64) NO None
2025-09-05 15:19:24,673 - manual_migration - INFO - area_name varchar(64) YES None
2025-09-05 15:19:24,673 - manual_migration - INFO - scene_id varchar(64) NO None
2025-09-05 15:19:24,673 - manual_migration - INFO - layer_index int NO None
2025-09-05 15:19:24,673 - manual_migration - INFO - layer_name varchar(64) YES None
2025-09-05 15:19:24,673 - manual_migration - INFO - is_occupied tinyint(1) NO None
2025-09-05 15:19:24,673 - manual_migration - INFO - goods_content varchar(100) NO None
2025-09-05 15:19:24,673 - manual_migration - INFO - goods_weight int YES None
2025-09-05 15:19:24,673 - manual_migration - INFO - goods_volume int YES None
2025-09-05 15:19:24,673 - manual_migration - INFO - is_locked tinyint(1) NO None
2025-09-05 15:19:24,673 - manual_migration - INFO - is_disabled tinyint(1) NO None
2025-09-05 15:19:24,673 - manual_migration - INFO - is_empty_tray tinyint(1) NO None
2025-09-05 15:19:24,673 - manual_migration - INFO - locked_by varchar(128) YES None
2025-09-05 15:19:24,673 - manual_migration - INFO - tags varchar(255) YES None
2025-09-05 15:19:24,673 - manual_migration - INFO - max_weight int YES None
2025-09-05 15:19:24,673 - manual_migration - INFO - max_volume int YES None
2025-09-05 15:19:24,673 - manual_migration - INFO - layer_height int YES None
2025-09-05 15:19:24,673 - manual_migration - INFO - goods_stored_at datetime YES None
2025-09-05 15:19:24,673 - manual_migration - INFO - goods_retrieved_at datetime YES None
2025-09-05 15:19:24,673 - manual_migration - INFO - last_access_at datetime YES None
2025-09-05 15:19:24,673 - manual_migration - INFO - description text YES None
2025-09-05 15:19:24,673 - manual_migration - INFO - config_json text YES None
2025-09-05 15:19:24,673 - manual_migration - INFO - created_at datetime(6) YES None
2025-09-05 15:19:24,673 - manual_migration - INFO - updated_at datetime(6) YES None
2025-09-05 15:19:24,673 - manual_migration - INFO - is_deleted tinyint(1) YES None
2025-09-05 15:19:24,673 - manual_migration - INFO - location_type int NO 1
2025-09-05 15:19:24,674 - manual_migration - INFO - ✅ 迁移成功完成!
2025-09-11 19:35:47,683 - migration - INFO - 开始执行数据库自动迁移...
2025-09-11 19:35:47,683 - utils.db_migration - INFO - 开始数据库迁移
2025-09-11 19:35:47,732 - utils.db_migration - INFO - 发现 23 个模型
2025-09-11 19:35:47,751 - utils.db_migration - INFO - 表 vwed_script_api_registration 不存在,准备创建
2025-09-11 19:35:47,753 - utils.db_migration - ERROR - [logger.py:235] - error() - 创建表 vwed_script_api_registration 失败: (pymysql.err.OperationalError) (1824, "Failed to open the referenced table 'vwed_script_file'")
[SQL:
CREATE TABLE vwed_script_api_registration (
id INTEGER NOT NULL COMMENT '注册记录ID' AUTO_INCREMENT,
script_id VARCHAR(255) NOT NULL COMMENT '脚本实例ID',
file_id INTEGER NOT NULL COMMENT '脚本文件ID',
route_path VARCHAR(500) NOT NULL COMMENT '路由路径',
http_method VARCHAR(20) NOT NULL COMMENT 'HTTP方法: GET, POST, PUT, DELETE等',
handler_name VARCHAR(255) NOT NULL COMMENT '处理函数名',
description TEXT COMMENT '接口描述',
parameters JSON COMMENT '接口参数定义',
response_schema JSON COMMENT '响应格式定义',
is_active BOOL COMMENT '是否激活',
call_count INTEGER COMMENT '调用次数',
last_called_at DATETIME COMMENT '最后调用时间',
average_response_time_ms INTEGER COMMENT '平均响应时间(毫秒)',
created_at DATETIME NOT NULL COMMENT '注册时间',
PRIMARY KEY (id),
FOREIGN KEY(file_id) REFERENCES vwed_script_file (id)
)
]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
Traceback (most recent call last):
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 1964, in _exec_single_context
self.dialect.do_execute(
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\default.py", line 942, in do_execute
cursor.execute(statement, parameters)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\cursors.py", line 153, in execute
result = self._query(query)
^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\cursors.py", line 322, in _query
conn.query(q)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 563, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 825, in _read_query_result
result.read()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 1199, in read
first_packet = self.connection._read_packet()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 775, in _read_packet
packet.raise_for_error()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\protocol.py", line 219, in raise_for_error
err.raise_mysql_exception(self._data)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\err.py", line 150, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.OperationalError: (1824, "Failed to open the referenced table 'vwed_script_file'")
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "D:\jsw_code\project\VWED_server\utils\db_migration.py", line 75, in create_table
model.__table__.create(self.engine)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\sql\schema.py", line 1289, in create
bind._run_ddl_visitor(ddl.SchemaGenerator, self, checkfirst=checkfirst)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 3249, in _run_ddl_visitor
conn._run_ddl_visitor(visitorcallable, element, **kwargs)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 2456, in _run_ddl_visitor
visitorcallable(self.dialect, self, **kwargs).traverse_single(element)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\sql\visitors.py", line 664, in traverse_single
return meth(obj, **kw)
^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\sql\ddl.py", line 1016, in visit_table
)._invoke_with(self.connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\sql\ddl.py", line 314, in _invoke_with
return bind.execute(self)
^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 1416, in execute
return meth(
^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\sql\ddl.py", line 180, in _execute_on_connection
return connection._execute_ddl(
^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 1527, in _execute_ddl
ret = self._execute_context(
^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 1843, in _execute_context
return self._exec_single_context(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 1983, in _exec_single_context
self._handle_dbapi_exception(
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 2352, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 1964, in _exec_single_context
self.dialect.do_execute(
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\default.py", line 942, in do_execute
cursor.execute(statement, parameters)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\cursors.py", line 153, in execute
result = self._query(query)
^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\cursors.py", line 322, in _query
conn.query(q)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 563, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 825, in _read_query_result
result.read()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 1199, in read
first_packet = self.connection._read_packet()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 775, in _read_packet
packet.raise_for_error()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\protocol.py", line 219, in raise_for_error
err.raise_mysql_exception(self._data)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\err.py", line 150, in raise_mysql_exception
raise errorclass(errno, errval)
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1824, "Failed to open the referenced table 'vwed_script_file'")
[SQL:
CREATE TABLE vwed_script_api_registration (
id INTEGER NOT NULL COMMENT '注册记录ID' AUTO_INCREMENT,
script_id VARCHAR(255) NOT NULL COMMENT '脚本实例ID',
file_id INTEGER NOT NULL COMMENT '脚本文件ID',
route_path VARCHAR(500) NOT NULL COMMENT '路由路径',
http_method VARCHAR(20) NOT NULL COMMENT 'HTTP方法: GET, POST, PUT, DELETE等',
handler_name VARCHAR(255) NOT NULL COMMENT '处理函数名',
description TEXT COMMENT '接口描述',
parameters JSON COMMENT '接口参数定义',
response_schema JSON COMMENT '响应格式定义',
is_active BOOL COMMENT '是否激活',
call_count INTEGER COMMENT '调用次数',
last_called_at DATETIME COMMENT '最后调用时间',
average_response_time_ms INTEGER COMMENT '平均响应时间(毫秒)',
created_at DATETIME NOT NULL COMMENT '注册时间',
PRIMARY KEY (id),
FOREIGN KEY(file_id) REFERENCES vwed_script_file (id)
)
]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
Stack (most recent call last):
File "D:\jsw_code\project\VWED_server\scripts\run_migration.py", line 64, in <module>
main()
File "D:\jsw_code\project\VWED_server\scripts\run_migration.py", line 53, in main
success = run_migration()
File "D:\jsw_code\project\VWED_server\utils\db_migration.py", line 203, in run_migration
migration.migrate()
File "D:\jsw_code\project\VWED_server\utils\db_migration.py", line 181, in migrate
self.create_table(model)
File "D:\jsw_code\project\VWED_server\utils\db_migration.py", line 79, in create_table
logger.error(f"创建表 {model.__tablename__} 失败: {str(e)}")
File "D:\jsw_code\project\VWED_server\utils\logger.py", line 235, in error
self.logger.error(message, *args, exc_info=exc_info, stack_info=stack_info, **kwargs)
2025-09-11 19:35:48,199 - services.sync_service - INFO - 没有缓存的token正在获取...
2025-09-11 19:35:48,200 - services.sync_service - INFO - 正在获取登录token用户: vwed
2025-09-11 19:35:48,200 - utils.db_migration - INFO - 表 vwed_script_execution_log 不存在,准备创建
2025-09-11 19:35:48,203 - utils.db_migration - ERROR - [logger.py:235] - error() - 创建表 vwed_script_execution_log 失败: (pymysql.err.OperationalError) (1824, "Failed to open the referenced table 'vwed_script_file'")
[SQL:
CREATE TABLE vwed_script_execution_log (
id INTEGER NOT NULL COMMENT '日志ID' AUTO_INCREMENT,
script_id VARCHAR(255) NOT NULL COMMENT '脚本实例ID',
file_id INTEGER NOT NULL COMMENT '脚本文件ID',
execution_type VARCHAR(50) NOT NULL COMMENT '执行类型: start_service, stop_service, function_call, api_call',
function_name VARCHAR(255) COMMENT '执行的函数名',
input_params JSON COMMENT '输入参数',
output_result JSON COMMENT '输出结果',
status VARCHAR(20) NOT NULL COMMENT '执行状态: running, success, failed, timeout',
error_message TEXT COMMENT '错误信息',
error_traceback TEXT COMMENT '错误堆栈',
start_time DATETIME NOT NULL COMMENT '开始时间',
end_time DATETIME COMMENT '结束时间',
duration_ms INTEGER COMMENT '执行时长(毫秒)',
memory_usage_mb FLOAT COMMENT '内存使用(MB)',
cpu_usage_percent FLOAT COMMENT 'CPU使用率(%%)',
log_level VARCHAR(20) COMMENT '日志级别: DEBUG, INFO, WARNING, ERROR',
tags JSON COMMENT '标签信息',
created_at DATETIME NOT NULL COMMENT '创建时间',
PRIMARY KEY (id),
FOREIGN KEY(file_id) REFERENCES vwed_script_file (id)
)
]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
Traceback (most recent call last):
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 1964, in _exec_single_context
self.dialect.do_execute(
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\default.py", line 942, in do_execute
cursor.execute(statement, parameters)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\cursors.py", line 153, in execute
result = self._query(query)
^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\cursors.py", line 322, in _query
conn.query(q)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 563, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 825, in _read_query_result
result.read()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 1199, in read
first_packet = self.connection._read_packet()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 775, in _read_packet
packet.raise_for_error()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\protocol.py", line 219, in raise_for_error
err.raise_mysql_exception(self._data)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\err.py", line 150, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.OperationalError: (1824, "Failed to open the referenced table 'vwed_script_file'")
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "D:\jsw_code\project\VWED_server\utils\db_migration.py", line 75, in create_table
model.__table__.create(self.engine)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\sql\schema.py", line 1289, in create
bind._run_ddl_visitor(ddl.SchemaGenerator, self, checkfirst=checkfirst)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 3249, in _run_ddl_visitor
conn._run_ddl_visitor(visitorcallable, element, **kwargs)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 2456, in _run_ddl_visitor
visitorcallable(self.dialect, self, **kwargs).traverse_single(element)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\sql\visitors.py", line 664, in traverse_single
return meth(obj, **kw)
^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\sql\ddl.py", line 1016, in visit_table
)._invoke_with(self.connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\sql\ddl.py", line 314, in _invoke_with
return bind.execute(self)
^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 1416, in execute
return meth(
^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\sql\ddl.py", line 180, in _execute_on_connection
return connection._execute_ddl(
^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 1527, in _execute_ddl
ret = self._execute_context(
^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 1843, in _execute_context
return self._exec_single_context(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 1983, in _exec_single_context
self._handle_dbapi_exception(
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 2352, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 1964, in _exec_single_context
self.dialect.do_execute(
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\default.py", line 942, in do_execute
cursor.execute(statement, parameters)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\cursors.py", line 153, in execute
result = self._query(query)
^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\cursors.py", line 322, in _query
conn.query(q)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 563, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 825, in _read_query_result
result.read()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 1199, in read
first_packet = self.connection._read_packet()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 775, in _read_packet
packet.raise_for_error()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\protocol.py", line 219, in raise_for_error
err.raise_mysql_exception(self._data)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\err.py", line 150, in raise_mysql_exception
raise errorclass(errno, errval)
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1824, "Failed to open the referenced table 'vwed_script_file'")
[SQL:
CREATE TABLE vwed_script_execution_log (
id INTEGER NOT NULL COMMENT '日志ID' AUTO_INCREMENT,
script_id VARCHAR(255) NOT NULL COMMENT '脚本实例ID',
file_id INTEGER NOT NULL COMMENT '脚本文件ID',
execution_type VARCHAR(50) NOT NULL COMMENT '执行类型: start_service, stop_service, function_call, api_call',
function_name VARCHAR(255) COMMENT '执行的函数名',
input_params JSON COMMENT '输入参数',
output_result JSON COMMENT '输出结果',
status VARCHAR(20) NOT NULL COMMENT '执行状态: running, success, failed, timeout',
error_message TEXT COMMENT '错误信息',
error_traceback TEXT COMMENT '错误堆栈',
start_time DATETIME NOT NULL COMMENT '开始时间',
end_time DATETIME COMMENT '结束时间',
duration_ms INTEGER COMMENT '执行时长(毫秒)',
memory_usage_mb FLOAT COMMENT '内存使用(MB)',
cpu_usage_percent FLOAT COMMENT 'CPU使用率(%%)',
log_level VARCHAR(20) COMMENT '日志级别: DEBUG, INFO, WARNING, ERROR',
tags JSON COMMENT '标签信息',
created_at DATETIME NOT NULL COMMENT '创建时间',
PRIMARY KEY (id),
FOREIGN KEY(file_id) REFERENCES vwed_script_file (id)
)
]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
Stack (most recent call last):
File "D:\jsw_code\project\VWED_server\scripts\run_migration.py", line 64, in <module>
main()
File "D:\jsw_code\project\VWED_server\scripts\run_migration.py", line 53, in main
success = run_migration()
File "D:\jsw_code\project\VWED_server\utils\db_migration.py", line 203, in run_migration
migration.migrate()
File "D:\jsw_code\project\VWED_server\utils\db_migration.py", line 181, in migrate
self.create_table(model)
File "D:\jsw_code\project\VWED_server\utils\db_migration.py", line 79, in create_table
logger.error(f"创建表 {model.__tablename__} 失败: {str(e)}")
File "D:\jsw_code\project\VWED_server\utils\logger.py", line 235, in error
self.logger.error(message, *args, exc_info=exc_info, stack_info=stack_info, **kwargs)
2025-09-11 19:35:48,205 - services.sync_service - ERROR - [logger.py:235] - error() - 调用登录接口失败: Header part (1000) from ('X-Tenant-Id', 1000) must be of type str or bytes, not <class 'int'>
Traceback (most recent call last):
File "D:\jsw_code\project\VWED_server\services\sync_service.py", line 1009, in get_login_token_sync
response = requests.post(
^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\api.py", line 115, in post
return request("post", url, data=data, json=json, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\sessions.py", line 575, in request
prep = self.prepare_request(req)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\sessions.py", line 484, in prepare_request
p.prepare(
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\models.py", line 368, in prepare
self.prepare_headers(headers)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\models.py", line 490, in prepare_headers
check_header_validity(header)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\utils.py", line 1042, in check_header_validity
_validate_header_part(header, value, 1)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\utils.py", line 1051, in _validate_header_part
raise InvalidHeader(
requests.exceptions.InvalidHeader: Header part (1000) from ('X-Tenant-Id', 1000) must be of type str or bytes, not <class 'int'>
Stack (most recent call last):
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\threading.py", line 1032, in _bootstrap
self._bootstrap_inner()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\threading.py", line 1075, in _bootstrap_inner
self.run()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\threading.py", line 1012, in run
self._target(*self._args, **self._kwargs)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\concurrent\futures\thread.py", line 93, in _worker
work_item.run()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\concurrent\futures\thread.py", line 59, in run
result = self.fn(*self.args, **self.kwargs)
File "D:\jsw_code\project\VWED_server\utils\alert_sync.py", line 206, in _send_alert_to_main_system
token = get_tf_api_token_sync()
File "D:\jsw_code\project\VWED_server\utils\alert_sync.py", line 28, in get_tf_api_token_sync
token = refresh_token_if_needed_sync()
File "D:\jsw_code\project\VWED_server\services\sync_service.py", line 1068, in refresh_token_if_needed_sync
return get_login_token_sync()
File "D:\jsw_code\project\VWED_server\services\sync_service.py", line 1042, in get_login_token_sync
logger.error(f"调用登录接口失败: {str(e)}")
File "D:\jsw_code\project\VWED_server\utils\logger.py", line 235, in error
self.logger.error(message, *args, exc_info=exc_info, stack_info=stack_info, **kwargs)
2025-09-11 19:35:48,212 - services.sync_service - INFO - 没有缓存的token正在获取...
2025-09-11 19:35:48,212 - utils.db_migration - INFO - 表 vwed_script_file 不存在,准备创建
2025-09-11 19:35:48,219 - services.sync_service - INFO - 正在获取登录token用户: vwed
2025-09-11 19:35:48,220 - services.sync_service - ERROR - [logger.py:235] - error() - 调用登录接口失败: Header part (1000) from ('X-Tenant-Id', 1000) must be of type str or bytes, not <class 'int'>
Traceback (most recent call last):
File "D:\jsw_code\project\VWED_server\services\sync_service.py", line 1009, in get_login_token_sync
response = requests.post(
^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\api.py", line 115, in post
return request("post", url, data=data, json=json, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\sessions.py", line 575, in request
prep = self.prepare_request(req)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\sessions.py", line 484, in prepare_request
p.prepare(
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\models.py", line 368, in prepare
self.prepare_headers(headers)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\models.py", line 490, in prepare_headers
check_header_validity(header)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\utils.py", line 1042, in check_header_validity
_validate_header_part(header, value, 1)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\utils.py", line 1051, in _validate_header_part
raise InvalidHeader(
requests.exceptions.InvalidHeader: Header part (1000) from ('X-Tenant-Id', 1000) must be of type str or bytes, not <class 'int'>
Stack (most recent call last):
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\threading.py", line 1032, in _bootstrap
self._bootstrap_inner()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\threading.py", line 1075, in _bootstrap_inner
self.run()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\threading.py", line 1012, in run
self._target(*self._args, **self._kwargs)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\concurrent\futures\thread.py", line 93, in _worker
work_item.run()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\concurrent\futures\thread.py", line 59, in run
result = self.fn(*self.args, **self.kwargs)
File "D:\jsw_code\project\VWED_server\utils\alert_sync.py", line 206, in _send_alert_to_main_system
token = get_tf_api_token_sync()
File "D:\jsw_code\project\VWED_server\utils\alert_sync.py", line 28, in get_tf_api_token_sync
token = refresh_token_if_needed_sync()
File "D:\jsw_code\project\VWED_server\services\sync_service.py", line 1068, in refresh_token_if_needed_sync
return get_login_token_sync()
File "D:\jsw_code\project\VWED_server\services\sync_service.py", line 1042, in get_login_token_sync
logger.error(f"调用登录接口失败: {str(e)}")
File "D:\jsw_code\project\VWED_server\utils\logger.py", line 235, in error
self.logger.error(message, *args, exc_info=exc_info, stack_info=stack_info, **kwargs)
2025-09-11 19:35:48,221 - utils.db_migration - ERROR - [logger.py:235] - error() - 创建表 vwed_script_file 失败: (pymysql.err.OperationalError) (1824, "Failed to open the referenced table 'vwed_script_project'")
[SQL:
CREATE TABLE vwed_script_file (
id INTEGER NOT NULL COMMENT '文件ID' AUTO_INCREMENT,
project_id INTEGER NOT NULL COMMENT '所属项目ID',
file_name VARCHAR(255) NOT NULL COMMENT '文件名',
file_path VARCHAR(500) NOT NULL COMMENT '文件相对路径',
file_type VARCHAR(20) NOT NULL COMMENT '文件类型: python, text, json等',
content TEXT COMMENT '文件内容',
size INTEGER COMMENT '文件大小(字节)',
encoding VARCHAR(20) COMMENT '文件编码',
is_directory BOOL COMMENT '是否为目录',
is_executable BOOL COMMENT '是否可执行',
has_boot_function BOOL COMMENT '是否包含boot函数',
status VARCHAR(20) NOT NULL COMMENT '文件状态: active, deleted',
created_by VARCHAR(100) COMMENT '创建者',
created_at DATETIME NOT NULL COMMENT '创建时间',
updated_at DATETIME NOT NULL COMMENT '更新时间',
PRIMARY KEY (id),
FOREIGN KEY(project_id) REFERENCES vwed_script_project (id)
)
]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
Traceback (most recent call last):
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 1964, in _exec_single_context
self.dialect.do_execute(
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\default.py", line 942, in do_execute
cursor.execute(statement, parameters)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\cursors.py", line 153, in execute
result = self._query(query)
^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\cursors.py", line 322, in _query
conn.query(q)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 563, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 825, in _read_query_result
result.read()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 1199, in read
first_packet = self.connection._read_packet()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 775, in _read_packet
packet.raise_for_error()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\protocol.py", line 219, in raise_for_error
err.raise_mysql_exception(self._data)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\err.py", line 150, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.OperationalError: (1824, "Failed to open the referenced table 'vwed_script_project'")
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "D:\jsw_code\project\VWED_server\utils\db_migration.py", line 75, in create_table
model.__table__.create(self.engine)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\sql\schema.py", line 1289, in create
bind._run_ddl_visitor(ddl.SchemaGenerator, self, checkfirst=checkfirst)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 3249, in _run_ddl_visitor
conn._run_ddl_visitor(visitorcallable, element, **kwargs)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 2456, in _run_ddl_visitor
visitorcallable(self.dialect, self, **kwargs).traverse_single(element)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\sql\visitors.py", line 664, in traverse_single
return meth(obj, **kw)
^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\sql\ddl.py", line 1016, in visit_table
)._invoke_with(self.connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\sql\ddl.py", line 314, in _invoke_with
return bind.execute(self)
^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 1416, in execute
return meth(
^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\sql\ddl.py", line 180, in _execute_on_connection
return connection._execute_ddl(
^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 1527, in _execute_ddl
ret = self._execute_context(
^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 1843, in _execute_context
return self._exec_single_context(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 1983, in _exec_single_context
self._handle_dbapi_exception(
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 2352, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 1964, in _exec_single_context
self.dialect.do_execute(
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\default.py", line 942, in do_execute
cursor.execute(statement, parameters)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\cursors.py", line 153, in execute
result = self._query(query)
^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\cursors.py", line 322, in _query
conn.query(q)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 563, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 825, in _read_query_result
result.read()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 1199, in read
first_packet = self.connection._read_packet()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 775, in _read_packet
packet.raise_for_error()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\protocol.py", line 219, in raise_for_error
err.raise_mysql_exception(self._data)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\err.py", line 150, in raise_mysql_exception
raise errorclass(errno, errval)
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1824, "Failed to open the referenced table 'vwed_script_project'")
[SQL:
CREATE TABLE vwed_script_file (
id INTEGER NOT NULL COMMENT '文件ID' AUTO_INCREMENT,
project_id INTEGER NOT NULL COMMENT '所属项目ID',
file_name VARCHAR(255) NOT NULL COMMENT '文件名',
file_path VARCHAR(500) NOT NULL COMMENT '文件相对路径',
file_type VARCHAR(20) NOT NULL COMMENT '文件类型: python, text, json等',
content TEXT COMMENT '文件内容',
size INTEGER COMMENT '文件大小(字节)',
encoding VARCHAR(20) COMMENT '文件编码',
is_directory BOOL COMMENT '是否为目录',
is_executable BOOL COMMENT '是否可执行',
has_boot_function BOOL COMMENT '是否包含boot函数',
status VARCHAR(20) NOT NULL COMMENT '文件状态: active, deleted',
created_by VARCHAR(100) COMMENT '创建者',
created_at DATETIME NOT NULL COMMENT '创建时间',
updated_at DATETIME NOT NULL COMMENT '更新时间',
PRIMARY KEY (id),
FOREIGN KEY(project_id) REFERENCES vwed_script_project (id)
)
]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
Stack (most recent call last):
File "D:\jsw_code\project\VWED_server\scripts\run_migration.py", line 64, in <module>
main()
File "D:\jsw_code\project\VWED_server\scripts\run_migration.py", line 53, in main
success = run_migration()
File "D:\jsw_code\project\VWED_server\utils\db_migration.py", line 203, in run_migration
migration.migrate()
File "D:\jsw_code\project\VWED_server\utils\db_migration.py", line 181, in migrate
self.create_table(model)
File "D:\jsw_code\project\VWED_server\utils\db_migration.py", line 79, in create_table
logger.error(f"创建表 {model.__tablename__} 失败: {str(e)}")
File "D:\jsw_code\project\VWED_server\utils\logger.py", line 235, in error
self.logger.error(message, *args, exc_info=exc_info, stack_info=stack_info, **kwargs)
2025-09-11 19:35:48,225 - utils.db_migration - INFO - 表 vwed_script_function_registration 不存在,准备创建
2025-09-11 19:35:48,226 - utils.db_migration - ERROR - [logger.py:235] - error() - 创建表 vwed_script_function_registration 失败: (pymysql.err.OperationalError) (1824, "Failed to open the referenced table 'vwed_script_file'")
[SQL:
CREATE TABLE vwed_script_function_registration (
id INTEGER NOT NULL COMMENT '注册记录ID' AUTO_INCREMENT,
script_id VARCHAR(255) NOT NULL COMMENT '脚本实例ID',
file_id INTEGER NOT NULL COMMENT '脚本文件ID',
function_name VARCHAR(255) NOT NULL COMMENT '函数名',
handler_name VARCHAR(255) NOT NULL COMMENT '处理函数名(实际函数名)',
description TEXT COMMENT '函数描述',
parameters JSON COMMENT '参数定义: [{"name": "param1", "type": "str", "required": true}]',
return_schema JSON COMMENT '返回值格式定义',
is_async BOOL COMMENT '是否为异步函数',
is_active BOOL COMMENT '是否激活',
call_count INTEGER COMMENT '调用次数',
last_called_at DATETIME COMMENT '最后调用时间',
average_execution_time_ms INTEGER COMMENT '平均执行时间(毫秒)',
success_count INTEGER COMMENT '成功执行次数',
error_count INTEGER COMMENT '错误次数',
tags JSON COMMENT '函数标签',
created_at DATETIME NOT NULL COMMENT '注册时间',
PRIMARY KEY (id),
FOREIGN KEY(file_id) REFERENCES vwed_script_file (id)
)
]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
Traceback (most recent call last):
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 1964, in _exec_single_context
self.dialect.do_execute(
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\default.py", line 942, in do_execute
cursor.execute(statement, parameters)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\cursors.py", line 153, in execute
result = self._query(query)
^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\cursors.py", line 322, in _query
conn.query(q)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 563, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 825, in _read_query_result
result.read()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 1199, in read
first_packet = self.connection._read_packet()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 775, in _read_packet
packet.raise_for_error()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\protocol.py", line 219, in raise_for_error
err.raise_mysql_exception(self._data)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\err.py", line 150, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.OperationalError: (1824, "Failed to open the referenced table 'vwed_script_file'")
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "D:\jsw_code\project\VWED_server\utils\db_migration.py", line 75, in create_table
model.__table__.create(self.engine)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\sql\schema.py", line 1289, in create
bind._run_ddl_visitor(ddl.SchemaGenerator, self, checkfirst=checkfirst)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 3249, in _run_ddl_visitor
conn._run_ddl_visitor(visitorcallable, element, **kwargs)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 2456, in _run_ddl_visitor
visitorcallable(self.dialect, self, **kwargs).traverse_single(element)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\sql\visitors.py", line 664, in traverse_single
return meth(obj, **kw)
^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\sql\ddl.py", line 1016, in visit_table
)._invoke_with(self.connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\sql\ddl.py", line 314, in _invoke_with
return bind.execute(self)
^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 1416, in execute
return meth(
^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\sql\ddl.py", line 180, in _execute_on_connection
return connection._execute_ddl(
^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 1527, in _execute_ddl
ret = self._execute_context(
^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 1843, in _execute_context
return self._exec_single_context(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 1983, in _exec_single_context
self._handle_dbapi_exception(
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 2352, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 1964, in _exec_single_context
self.dialect.do_execute(
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\default.py", line 942, in do_execute
cursor.execute(statement, parameters)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\cursors.py", line 153, in execute
result = self._query(query)
^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\cursors.py", line 322, in _query
conn.query(q)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 563, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 825, in _read_query_result
result.read()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 1199, in read
first_packet = self.connection._read_packet()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 775, in _read_packet
packet.raise_for_error()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\protocol.py", line 219, in raise_for_error
err.raise_mysql_exception(self._data)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\err.py", line 150, in raise_mysql_exception
raise errorclass(errno, errval)
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1824, "Failed to open the referenced table 'vwed_script_file'")
[SQL:
CREATE TABLE vwed_script_function_registration (
id INTEGER NOT NULL COMMENT '注册记录ID' AUTO_INCREMENT,
script_id VARCHAR(255) NOT NULL COMMENT '脚本实例ID',
file_id INTEGER NOT NULL COMMENT '脚本文件ID',
function_name VARCHAR(255) NOT NULL COMMENT '函数名',
handler_name VARCHAR(255) NOT NULL COMMENT '处理函数名(实际函数名)',
description TEXT COMMENT '函数描述',
parameters JSON COMMENT '参数定义: [{"name": "param1", "type": "str", "required": true}]',
return_schema JSON COMMENT '返回值格式定义',
is_async BOOL COMMENT '是否为异步函数',
is_active BOOL COMMENT '是否激活',
call_count INTEGER COMMENT '调用次数',
last_called_at DATETIME COMMENT '最后调用时间',
average_execution_time_ms INTEGER COMMENT '平均执行时间(毫秒)',
success_count INTEGER COMMENT '成功执行次数',
error_count INTEGER COMMENT '错误次数',
tags JSON COMMENT '函数标签',
created_at DATETIME NOT NULL COMMENT '注册时间',
PRIMARY KEY (id),
FOREIGN KEY(file_id) REFERENCES vwed_script_file (id)
)
]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
Stack (most recent call last):
File "D:\jsw_code\project\VWED_server\scripts\run_migration.py", line 64, in <module>
main()
File "D:\jsw_code\project\VWED_server\scripts\run_migration.py", line 53, in main
success = run_migration()
File "D:\jsw_code\project\VWED_server\utils\db_migration.py", line 203, in run_migration
migration.migrate()
File "D:\jsw_code\project\VWED_server\utils\db_migration.py", line 181, in migrate
self.create_table(model)
File "D:\jsw_code\project\VWED_server\utils\db_migration.py", line 79, in create_table
logger.error(f"创建表 {model.__tablename__} 失败: {str(e)}")
File "D:\jsw_code\project\VWED_server\utils\logger.py", line 235, in error
self.logger.error(message, *args, exc_info=exc_info, stack_info=stack_info, **kwargs)
2025-09-11 19:35:48,228 - utils.db_migration - INFO - 表 vwed_script_project 不存在,准备创建
2025-09-11 19:35:48,270 - utils.db_migration - INFO - 创建表 vwed_script_project 成功
2025-09-11 19:35:48,270 - utils.db_migration - INFO - 表 vwed_script_registry 不存在,准备创建
2025-09-11 19:35:48,271 - utils.db_migration - ERROR - [logger.py:235] - error() - 创建表 vwed_script_registry 失败: (pymysql.err.OperationalError) (1824, "Failed to open the referenced table 'vwed_script_file'")
[SQL:
CREATE TABLE vwed_script_registry (
id INTEGER NOT NULL COMMENT '注册记录ID' AUTO_INCREMENT,
script_id VARCHAR(255) NOT NULL COMMENT '脚本实例ID',
file_id INTEGER NOT NULL COMMENT '脚本文件ID',
script_path VARCHAR(500) NOT NULL COMMENT '脚本相对路径',
status VARCHAR(20) NOT NULL COMMENT '运行状态: starting, running, stopping, stopped, error',
process_id VARCHAR(50) COMMENT '进程ID',
host_info JSON COMMENT '主机信息',
start_params JSON COMMENT '启动参数',
resource_limits JSON COMMENT '资源限制配置',
performance_stats JSON COMMENT '性能统计信息',
error_message TEXT COMMENT '错误信息',
api_count INTEGER COMMENT '注册的API数量',
function_count INTEGER COMMENT '注册的函数数量',
event_count INTEGER COMMENT '注册的事件监听器数量',
timer_count INTEGER COMMENT '注册的定时任务数量',
last_heartbeat DATETIME COMMENT '最后心跳时间',
started_at DATETIME NOT NULL COMMENT '启动时间',
stopped_at DATETIME COMMENT '停止时间',
created_at DATETIME NOT NULL COMMENT '创建时间',
updated_at DATETIME NOT NULL COMMENT '更新时间',
PRIMARY KEY (id),
UNIQUE (script_id),
FOREIGN KEY(file_id) REFERENCES vwed_script_file (id)
)
]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
Traceback (most recent call last):
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 1964, in _exec_single_context
self.dialect.do_execute(
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\default.py", line 942, in do_execute
cursor.execute(statement, parameters)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\cursors.py", line 153, in execute
result = self._query(query)
^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\cursors.py", line 322, in _query
conn.query(q)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 563, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 825, in _read_query_result
result.read()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 1199, in read
first_packet = self.connection._read_packet()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 775, in _read_packet
packet.raise_for_error()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\protocol.py", line 219, in raise_for_error
err.raise_mysql_exception(self._data)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\err.py", line 150, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.OperationalError: (1824, "Failed to open the referenced table 'vwed_script_file'")
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "D:\jsw_code\project\VWED_server\utils\db_migration.py", line 75, in create_table
model.__table__.create(self.engine)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\sql\schema.py", line 1289, in create
bind._run_ddl_visitor(ddl.SchemaGenerator, self, checkfirst=checkfirst)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 3249, in _run_ddl_visitor
conn._run_ddl_visitor(visitorcallable, element, **kwargs)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 2456, in _run_ddl_visitor
visitorcallable(self.dialect, self, **kwargs).traverse_single(element)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\sql\visitors.py", line 664, in traverse_single
return meth(obj, **kw)
^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\sql\ddl.py", line 1016, in visit_table
)._invoke_with(self.connection)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\sql\ddl.py", line 314, in _invoke_with
return bind.execute(self)
^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 1416, in execute
return meth(
^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\sql\ddl.py", line 180, in _execute_on_connection
return connection._execute_ddl(
^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 1527, in _execute_ddl
ret = self._execute_context(
^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 1843, in _execute_context
return self._exec_single_context(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 1983, in _exec_single_context
self._handle_dbapi_exception(
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 2352, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\base.py", line 1964, in _exec_single_context
self.dialect.do_execute(
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\sqlalchemy\engine\default.py", line 942, in do_execute
cursor.execute(statement, parameters)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\cursors.py", line 153, in execute
result = self._query(query)
^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\cursors.py", line 322, in _query
conn.query(q)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 563, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 825, in _read_query_result
result.read()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 1199, in read
first_packet = self.connection._read_packet()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\connections.py", line 775, in _read_packet
packet.raise_for_error()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\protocol.py", line 219, in raise_for_error
err.raise_mysql_exception(self._data)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\pymysql\err.py", line 150, in raise_mysql_exception
raise errorclass(errno, errval)
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1824, "Failed to open the referenced table 'vwed_script_file'")
[SQL:
CREATE TABLE vwed_script_registry (
id INTEGER NOT NULL COMMENT '注册记录ID' AUTO_INCREMENT,
script_id VARCHAR(255) NOT NULL COMMENT '脚本实例ID',
file_id INTEGER NOT NULL COMMENT '脚本文件ID',
script_path VARCHAR(500) NOT NULL COMMENT '脚本相对路径',
status VARCHAR(20) NOT NULL COMMENT '运行状态: starting, running, stopping, stopped, error',
process_id VARCHAR(50) COMMENT '进程ID',
host_info JSON COMMENT '主机信息',
start_params JSON COMMENT '启动参数',
resource_limits JSON COMMENT '资源限制配置',
performance_stats JSON COMMENT '性能统计信息',
error_message TEXT COMMENT '错误信息',
api_count INTEGER COMMENT '注册的API数量',
function_count INTEGER COMMENT '注册的函数数量',
event_count INTEGER COMMENT '注册的事件监听器数量',
timer_count INTEGER COMMENT '注册的定时任务数量',
last_heartbeat DATETIME COMMENT '最后心跳时间',
started_at DATETIME NOT NULL COMMENT '启动时间',
stopped_at DATETIME COMMENT '停止时间',
created_at DATETIME NOT NULL COMMENT '创建时间',
updated_at DATETIME NOT NULL COMMENT '更新时间',
PRIMARY KEY (id),
UNIQUE (script_id),
FOREIGN KEY(file_id) REFERENCES vwed_script_file (id)
)
]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
Stack (most recent call last):
File "D:\jsw_code\project\VWED_server\scripts\run_migration.py", line 64, in <module>
main()
File "D:\jsw_code\project\VWED_server\scripts\run_migration.py", line 53, in main
success = run_migration()
File "D:\jsw_code\project\VWED_server\utils\db_migration.py", line 203, in run_migration
migration.migrate()
File "D:\jsw_code\project\VWED_server\utils\db_migration.py", line 181, in migrate
self.create_table(model)
File "D:\jsw_code\project\VWED_server\utils\db_migration.py", line 79, in create_table
logger.error(f"创建表 {model.__tablename__} 失败: {str(e)}")
File "D:\jsw_code\project\VWED_server\utils\logger.py", line 235, in error
self.logger.error(message, *args, exc_info=exc_info, stack_info=stack_info, **kwargs)
2025-09-11 19:35:48,283 - utils.db_migration - INFO - 数据库迁移完成
2025-09-11 19:35:48,283 - utils.db_migration - INFO - 数据库迁移成功
2025-09-11 19:35:48,283 - migration - INFO - 数据库迁移成功完成!
2025-09-11 19:36:21,269 - services.sync_service - INFO - 没有缓存的token正在获取...
2025-09-11 19:36:21,269 - services.sync_service - INFO - 正在获取登录token用户: vwed
2025-09-11 19:36:21,271 - services.sync_service - ERROR - [logger.py:235] - error() - 调用登录接口失败: Header part (1000) from ('X-Tenant-Id', 1000) must be of type str or bytes, not <class 'int'>
Traceback (most recent call last):
File "D:\jsw_code\project\VWED_server\services\sync_service.py", line 1009, in get_login_token_sync
response = requests.post(
^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\api.py", line 115, in post
return request("post", url, data=data, json=json, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\sessions.py", line 575, in request
prep = self.prepare_request(req)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\sessions.py", line 484, in prepare_request
p.prepare(
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\models.py", line 368, in prepare
self.prepare_headers(headers)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\models.py", line 490, in prepare_headers
check_header_validity(header)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\utils.py", line 1042, in check_header_validity
_validate_header_part(header, value, 1)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\utils.py", line 1051, in _validate_header_part
raise InvalidHeader(
requests.exceptions.InvalidHeader: Header part (1000) from ('X-Tenant-Id', 1000) must be of type str or bytes, not <class 'int'>
Stack (most recent call last):
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\threading.py", line 1032, in _bootstrap
self._bootstrap_inner()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\threading.py", line 1075, in _bootstrap_inner
self.run()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\threading.py", line 1012, in run
self._target(*self._args, **self._kwargs)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\concurrent\futures\thread.py", line 93, in _worker
work_item.run()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\concurrent\futures\thread.py", line 59, in run
result = self.fn(*self.args, **self.kwargs)
File "D:\jsw_code\project\VWED_server\utils\alert_sync.py", line 206, in _send_alert_to_main_system
token = get_tf_api_token_sync()
File "D:\jsw_code\project\VWED_server\utils\alert_sync.py", line 28, in get_tf_api_token_sync
token = refresh_token_if_needed_sync()
File "D:\jsw_code\project\VWED_server\services\sync_service.py", line 1068, in refresh_token_if_needed_sync
return get_login_token_sync()
File "D:\jsw_code\project\VWED_server\services\sync_service.py", line 1042, in get_login_token_sync
logger.error(f"调用登录接口失败: {str(e)}")
File "D:\jsw_code\project\VWED_server\utils\logger.py", line 235, in error
self.logger.error(message, *args, exc_info=exc_info, stack_info=stack_info, **kwargs)
2025-09-11 19:36:21,284 - services.sync_service - INFO - 没有缓存的token正在获取...
2025-09-11 19:36:21,335 - services.sync_service - INFO - 正在获取登录token用户: vwed
2025-09-11 19:36:21,341 - services.sync_service - ERROR - [logger.py:235] - error() - 调用登录接口失败: Header part (1000) from ('X-Tenant-Id', 1000) must be of type str or bytes, not <class 'int'>
Traceback (most recent call last):
File "D:\jsw_code\project\VWED_server\services\sync_service.py", line 1009, in get_login_token_sync
response = requests.post(
^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\api.py", line 115, in post
return request("post", url, data=data, json=json, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\sessions.py", line 575, in request
prep = self.prepare_request(req)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\sessions.py", line 484, in prepare_request
p.prepare(
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\models.py", line 368, in prepare
self.prepare_headers(headers)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\models.py", line 490, in prepare_headers
check_header_validity(header)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\utils.py", line 1042, in check_header_validity
_validate_header_part(header, value, 1)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\utils.py", line 1051, in _validate_header_part
raise InvalidHeader(
requests.exceptions.InvalidHeader: Header part (1000) from ('X-Tenant-Id', 1000) must be of type str or bytes, not <class 'int'>
Stack (most recent call last):
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\threading.py", line 1032, in _bootstrap
self._bootstrap_inner()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\threading.py", line 1075, in _bootstrap_inner
self.run()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\threading.py", line 1012, in run
self._target(*self._args, **self._kwargs)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\concurrent\futures\thread.py", line 93, in _worker
work_item.run()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\concurrent\futures\thread.py", line 59, in run
result = self.fn(*self.args, **self.kwargs)
File "D:\jsw_code\project\VWED_server\utils\alert_sync.py", line 206, in _send_alert_to_main_system
token = get_tf_api_token_sync()
File "D:\jsw_code\project\VWED_server\utils\alert_sync.py", line 28, in get_tf_api_token_sync
token = refresh_token_if_needed_sync()
File "D:\jsw_code\project\VWED_server\services\sync_service.py", line 1068, in refresh_token_if_needed_sync
return get_login_token_sync()
File "D:\jsw_code\project\VWED_server\services\sync_service.py", line 1042, in get_login_token_sync
logger.error(f"调用登录接口失败: {str(e)}")
File "D:\jsw_code\project\VWED_server\utils\logger.py", line 235, in error
self.logger.error(message, *args, exc_info=exc_info, stack_info=stack_info, **kwargs)
2025-09-11 19:36:45,532 - services.sync_service - INFO - 没有缓存的token正在获取...
2025-09-11 19:36:45,532 - services.sync_service - INFO - 正在获取登录token用户: vwed
2025-09-11 19:36:45,532 - services.sync_service - ERROR - [logger.py:235] - error() - 调用登录接口失败: Header part (1000) from ('X-Tenant-Id', 1000) must be of type str or bytes, not <class 'int'>
Traceback (most recent call last):
File "D:\jsw_code\project\VWED_server\services\sync_service.py", line 1009, in get_login_token_sync
response = requests.post(
^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\api.py", line 115, in post
return request("post", url, data=data, json=json, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\sessions.py", line 575, in request
prep = self.prepare_request(req)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\sessions.py", line 484, in prepare_request
p.prepare(
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\models.py", line 368, in prepare
self.prepare_headers(headers)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\models.py", line 490, in prepare_headers
check_header_validity(header)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\utils.py", line 1042, in check_header_validity
_validate_header_part(header, value, 1)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\utils.py", line 1051, in _validate_header_part
raise InvalidHeader(
requests.exceptions.InvalidHeader: Header part (1000) from ('X-Tenant-Id', 1000) must be of type str or bytes, not <class 'int'>
Stack (most recent call last):
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\threading.py", line 1032, in _bootstrap
self._bootstrap_inner()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\threading.py", line 1075, in _bootstrap_inner
self.run()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\threading.py", line 1012, in run
self._target(*self._args, **self._kwargs)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\concurrent\futures\thread.py", line 93, in _worker
work_item.run()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\concurrent\futures\thread.py", line 59, in run
result = self.fn(*self.args, **self.kwargs)
File "D:\jsw_code\project\VWED_server\utils\alert_sync.py", line 206, in _send_alert_to_main_system
token = get_tf_api_token_sync()
File "D:\jsw_code\project\VWED_server\utils\alert_sync.py", line 28, in get_tf_api_token_sync
token = refresh_token_if_needed_sync()
File "D:\jsw_code\project\VWED_server\services\sync_service.py", line 1068, in refresh_token_if_needed_sync
return get_login_token_sync()
File "D:\jsw_code\project\VWED_server\services\sync_service.py", line 1042, in get_login_token_sync
logger.error(f"调用登录接口失败: {str(e)}")
File "D:\jsw_code\project\VWED_server\utils\logger.py", line 235, in error
self.logger.error(message, *args, exc_info=exc_info, stack_info=stack_info, **kwargs)
2025-09-11 19:36:46,026 - services.sync_service - INFO - 没有缓存的token正在获取...
2025-09-11 19:36:46,026 - services.sync_service - INFO - 正在获取登录token用户: vwed
2025-09-11 19:36:46,027 - services.sync_service - ERROR - [logger.py:235] - error() - 调用登录接口失败: Header part (1000) from ('X-Tenant-Id', 1000) must be of type str or bytes, not <class 'int'>
Traceback (most recent call last):
File "D:\jsw_code\project\VWED_server\services\sync_service.py", line 1009, in get_login_token_sync
response = requests.post(
^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\api.py", line 115, in post
return request("post", url, data=data, json=json, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\sessions.py", line 575, in request
prep = self.prepare_request(req)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\sessions.py", line 484, in prepare_request
p.prepare(
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\models.py", line 368, in prepare
self.prepare_headers(headers)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\models.py", line 490, in prepare_headers
check_header_validity(header)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\utils.py", line 1042, in check_header_validity
_validate_header_part(header, value, 1)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\utils.py", line 1051, in _validate_header_part
raise InvalidHeader(
requests.exceptions.InvalidHeader: Header part (1000) from ('X-Tenant-Id', 1000) must be of type str or bytes, not <class 'int'>
Stack (most recent call last):
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\threading.py", line 1032, in _bootstrap
self._bootstrap_inner()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\threading.py", line 1075, in _bootstrap_inner
self.run()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\threading.py", line 1012, in run
self._target(*self._args, **self._kwargs)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\concurrent\futures\thread.py", line 93, in _worker
work_item.run()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\concurrent\futures\thread.py", line 59, in run
result = self.fn(*self.args, **self.kwargs)
File "D:\jsw_code\project\VWED_server\utils\alert_sync.py", line 206, in _send_alert_to_main_system
token = get_tf_api_token_sync()
File "D:\jsw_code\project\VWED_server\utils\alert_sync.py", line 28, in get_tf_api_token_sync
token = refresh_token_if_needed_sync()
File "D:\jsw_code\project\VWED_server\services\sync_service.py", line 1068, in refresh_token_if_needed_sync
return get_login_token_sync()
File "D:\jsw_code\project\VWED_server\services\sync_service.py", line 1042, in get_login_token_sync
logger.error(f"调用登录接口失败: {str(e)}")
File "D:\jsw_code\project\VWED_server\utils\logger.py", line 235, in error
self.logger.error(message, *args, exc_info=exc_info, stack_info=stack_info, **kwargs)
2025-09-11 19:37:18,377 - services.sync_service - INFO - 没有缓存的token正在获取...
2025-09-11 19:37:18,378 - services.sync_service - INFO - 正在获取登录token用户: vwed
2025-09-11 19:37:18,378 - services.sync_service - ERROR - [logger.py:235] - error() - 调用登录接口失败: Header part (1000) from ('X-Tenant-Id', 1000) must be of type str or bytes, not <class 'int'>
Traceback (most recent call last):
File "D:\jsw_code\project\VWED_server\services\sync_service.py", line 1009, in get_login_token_sync
response = requests.post(
^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\api.py", line 115, in post
return request("post", url, data=data, json=json, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\api.py", line 59, in request
return session.request(method=method, url=url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\sessions.py", line 575, in request
prep = self.prepare_request(req)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\sessions.py", line 484, in prepare_request
p.prepare(
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\models.py", line 368, in prepare
self.prepare_headers(headers)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\models.py", line 490, in prepare_headers
check_header_validity(header)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\utils.py", line 1042, in check_header_validity
_validate_header_part(header, value, 1)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\site-packages\requests\utils.py", line 1051, in _validate_header_part
raise InvalidHeader(
requests.exceptions.InvalidHeader: Header part (1000) from ('X-Tenant-Id', 1000) must be of type str or bytes, not <class 'int'>
Stack (most recent call last):
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\threading.py", line 1032, in _bootstrap
self._bootstrap_inner()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\threading.py", line 1075, in _bootstrap_inner
self.run()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\threading.py", line 1012, in run
self._target(*self._args, **self._kwargs)
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\concurrent\futures\thread.py", line 93, in _worker
work_item.run()
File "D:\Users\j2538\miniconda3\envs\pytf\Lib\concurrent\futures\thread.py", line 59, in run
result = self.fn(*self.args, **self.kwargs)
File "D:\jsw_code\project\VWED_server\utils\alert_sync.py", line 206, in _send_alert_to_main_system
token = get_tf_api_token_sync()
File "D:\jsw_code\project\VWED_server\utils\alert_sync.py", line 28, in get_tf_api_token_sync
token = refresh_token_if_needed_sync()
File "D:\jsw_code\project\VWED_server\services\sync_service.py", line 1068, in refresh_token_if_needed_sync
return get_login_token_sync()
File "D:\jsw_code\project\VWED_server\services\sync_service.py", line 1042, in get_login_token_sync
logger.error(f"调用登录接口失败: {str(e)}")
File "D:\jsw_code\project\VWED_server\utils\logger.py", line 235, in error
self.logger.error(message, *args, exc_info=exc_info, stack_info=stack_info, **kwargs)