Skip to content

[Bug] mysql数据库初始化失败 #56

@huntersxy

Description

@huntersxy

Plugin Version

Next-2.0.0

AstrBot Version

4.17.6

Database Type

MySQL

Operating System

Linux

Bug Description

数据库初始化失败

Steps to Reproduce

安装插件,配置数据库地址,保存

Expected Behavior

无报错

Error Logs

[2026-02-23 17:20:19.842] [Plug] [INFO] [database.engine:61]: [DatabaseEngine] 数据库引擎初始化成功
[2026-02-23 17:20:19.842] [Plug] [INFO] [database.sqlalchemy_database_manager:74]: [DomainRouter] 数据库引擎已创建
[2026-02-23 17:20:22.326] [Plug] [ERRO] [v4.17.6] [database.engine:242]: [DatabaseEngine] 创建表失败: (pymysql.err.OperationalError) (1101, "BLOB, TEXT, GEOMETRY or JSON column 'persona_content' can't have a default value")
[SQL: 
CREATE TABLE persona_backups (
	id INTEGER NOT NULL AUTO_INCREMENT, 
	group_id VARCHAR(255) NOT NULL DEFAULT 'default', 
	backup_name VARCHAR(255) NOT NULL, 
	timestamp FLOAT NOT NULL, 
	reason TEXT, 
	persona_config TEXT, 
	original_persona TEXT, 
	imitation_dialogues TEXT, 
	backup_reason TEXT, 
	backup_time FLOAT, 
	persona_content TEXT DEFAULT '', 
	created_at DATETIME, 
	PRIMARY KEY (id)
)

]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
[2026-02-23 17:20:22.327] [Plug] [ERRO] [v4.17.6] [database.sqlalchemy_database_manager:93]: [DomainRouter] 启动失败: (pymysql.err.OperationalError) (1101, "BLOB, TEXT, GEOMETRY or JSON column 'persona_content' can't have a default value")
[SQL: 
CREATE TABLE persona_backups (
	id INTEGER NOT NULL AUTO_INCREMENT, 
	group_id VARCHAR(255) NOT NULL DEFAULT 'default', 
	backup_name VARCHAR(255) NOT NULL, 
	timestamp FLOAT NOT NULL, 
	reason TEXT, 
	persona_config TEXT, 
	original_persona TEXT, 
	imitation_dialogues TEXT, 
	backup_reason TEXT, 
	backup_time FLOAT, 
	persona_content TEXT DEFAULT '', 
	created_at DATETIME, 
	PRIMARY KEY (id)
)

]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
    cursor.execute(statement, parameters)
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py", line 230, in execute
    self._adapt_connection._handle_exception(error)
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py", line 368, in _handle_exception
    raise error.with_traceback(exc_info[2])
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py", line 228, in execute
    return self.await_(self._execute_async(operation, parameters))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
    return current.parent.switch(awaitable)  # type: ignore[no-any-return,attr-defined] # noqa: E501
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
    value = await result
            ^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py", line 251, in _execute_async
    result = await self._cursor.execute(operation, parameters)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aiomysql/cursors.py", line 239, in execute
    await self._query(query)
  File "/usr/local/lib/python3.12/site-packages/aiomysql/cursors.py", line 457, in _query
    await conn.query(q)
  File "/usr/local/lib/python3.12/site-packages/aiomysql/connection.py", line 469, in query
    await self._read_query_result(unbuffered=unbuffered)
  File "/usr/local/lib/python3.12/site-packages/aiomysql/connection.py", line 683, in _read_query_result
    await result.read()
  File "/usr/local/lib/python3.12/site-packages/aiomysql/connection.py", line 1164, in read
    first_packet = await self.connection._read_packet()
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aiomysql/connection.py", line 652, in _read_packet
    packet.raise_for_error()
  File "/usr/local/lib/python3.12/site-packages/pymysql/protocol.py", line 219, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "/usr/local/lib/python3.12/site-packages/pymysql/err.py", line 150, in raise_mysql_exception
    raise errorclass(errno, errval)
pymysql.err.OperationalError: (1101, "BLOB, TEXT, GEOMETRY or JSON column 'persona_content' can't have a default value")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/AstrBot/data/plugins/astrbot_plugin_self_learning/services/database/sqlalchemy_database_manager.py", line 76, in start
    await self.engine.create_tables()
  File "/AstrBot/data/plugins/astrbot_plugin_self_learning/core/database/engine.py", line 231, in create_tables
    await conn.run_sync(Base.metadata.create_all)
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/engine.py", line 888, in run_sync
    return await greenlet_spawn(
           ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 203, in greenlet_spawn
    result = context.switch(value)
             ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/schema.py", line 5928, in create_all
    bind._run_ddl_visitor(
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 2467, in _run_ddl_visitor
    ).traverse_single(element)
      ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/visitors.py", line 661, in traverse_single
    return meth(obj, **kw)
           ^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/ddl.py", line 984, in visit_metadata
    self.traverse_single(
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/visitors.py", line 661, in traverse_single
    return meth(obj, **kw)
           ^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/ddl.py", line 1022, in visit_table
    )._invoke_with(self.connection)
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/ddl.py", line 321, in _invoke_with
    return bind.execute(self)
           ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1419, in execute
    return meth(
           ^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/ddl.py", line 187, in _execute_on_connection
    return connection._execute_ddl(
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1530, in _execute_ddl
    ret = self._execute_context(
          ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
    return self._exec_single_context(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
    self._handle_dbapi_exception(
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 2363, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
    cursor.execute(statement, parameters)
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py", line 230, in execute
    self._adapt_connection._handle_exception(error)
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py", line 368, in _handle_exception
    raise error.with_traceback(exc_info[2])
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py", line 228, in execute
    return self.await_(self._execute_async(operation, parameters))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
    return current.parent.switch(awaitable)  # type: ignore[no-any-return,attr-defined] # noqa: E501
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
    value = await result
            ^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py", line 251, in _execute_async
    result = await self._cursor.execute(operation, parameters)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aiomysql/cursors.py", line 239, in execute
    await self._query(query)
  File "/usr/local/lib/python3.12/site-packages/aiomysql/cursors.py", line 457, in _query
    await conn.query(q)
  File "/usr/local/lib/python3.12/site-packages/aiomysql/connection.py", line 469, in query
    await self._read_query_result(unbuffered=unbuffered)
  File "/usr/local/lib/python3.12/site-packages/aiomysql/connection.py", line 683, in _read_query_result
    await result.read()
  File "/usr/local/lib/python3.12/site-packages/aiomysql/connection.py", line 1164, in read
    first_packet = await self.connection._read_packet()
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aiomysql/connection.py", line 652, in _read_packet
    packet.raise_for_error()
  File "/usr/local/lib/python3.12/site-packages/pymysql/protocol.py", line 219, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "/usr/local/lib/python3.12/site-packages/pymysql/err.py", line 150, in raise_mysql_exception
    raise errorclass(errno, errval)
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1101, "BLOB, TEXT, GEOMETRY or JSON column 'persona_content' can't have a default value")
[SQL: 
CREATE TABLE persona_backups (
	id INTEGER NOT NULL AUTO_INCREMENT, 
	group_id VARCHAR(255) NOT NULL DEFAULT 'default', 
	backup_name VARCHAR(255) NOT NULL, 
	timestamp FLOAT NOT NULL, 
	reason TEXT, 
	persona_config TEXT, 
	original_persona TEXT, 
	imitation_dialogues TEXT, 
	backup_reason TEXT, 
	backup_time FLOAT, 
	persona_content TEXT DEFAULT '', 
	created_at DATETIME, 
	PRIMARY KEY (id)
)

]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
[2026-02-23 17:20:22.362] [Plug] [WARN] [v4.17.6] [core.plugin_lifecycle:323]: 数据库管理器启动返回 False (尝试 1/3)
[2026-02-23 17:20:22.363] [Plug] [INFO] [database.sqlalchemy_database_manager:66]: [DomainRouter] 开始启动…
[2026-02-23 17:20:22.372] [Plug] [INFO] [database.engine:61]: [DatabaseEngine] 数据库引擎初始化成功
[2026-02-23 17:20:22.373] [Plug] [INFO] [database.sqlalchemy_database_manager:74]: [DomainRouter] 数据库引擎已创建
[2026-02-23 17:20:22.899] [Plug] [ERRO] [v4.17.6] [database.engine:242]: [DatabaseEngine] 创建表失败: (pymysql.err.OperationalError) (1101, "BLOB, TEXT, GEOMETRY or JSON column 'persona_content' can't have a default value")
[SQL: 
CREATE TABLE persona_backups (
	id INTEGER NOT NULL AUTO_INCREMENT, 
	group_id VARCHAR(255) NOT NULL DEFAULT 'default', 
	backup_name VARCHAR(255) NOT NULL, 
	timestamp FLOAT NOT NULL, 
	reason TEXT, 
	persona_config TEXT, 
	original_persona TEXT, 
	imitation_dialogues TEXT, 
	backup_reason TEXT, 
	backup_time FLOAT, 
	persona_content TEXT DEFAULT '', 
	created_at DATETIME, 
	PRIMARY KEY (id)
)

]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
[2026-02-23 17:20:22.899] [Plug] [ERRO] [v4.17.6] [database.sqlalchemy_database_manager:93]: [DomainRouter] 启动失败: (pymysql.err.OperationalError) (1101, "BLOB, TEXT, GEOMETRY or JSON column 'persona_content' can't have a default value")
[SQL: 
CREATE TABLE persona_backups (
	id INTEGER NOT NULL AUTO_INCREMENT, 
	group_id VARCHAR(255) NOT NULL DEFAULT 'default', 
	backup_name VARCHAR(255) NOT NULL, 
	timestamp FLOAT NOT NULL, 
	reason TEXT, 
	persona_config TEXT, 
	original_persona TEXT, 
	imitation_dialogues TEXT, 
	backup_reason TEXT, 
	backup_time FLOAT, 
	persona_content TEXT DEFAULT '', 
	created_at DATETIME, 
	PRIMARY KEY (id)
)

]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
    cursor.execute(statement, parameters)
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py", line 230, in execute
    self._adapt_connection._handle_exception(error)
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py", line 368, in _handle_exception
    raise error.with_traceback(exc_info[2])
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py", line 228, in execute
    return self.await_(self._execute_async(operation, parameters))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
    return current.parent.switch(awaitable)  # type: ignore[no-any-return,attr-defined] # noqa: E501
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
    value = await result
            ^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py", line 251, in _execute_async
    result = await self._cursor.execute(operation, parameters)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aiomysql/cursors.py", line 239, in execute
    await self._query(query)
  File "/usr/local/lib/python3.12/site-packages/aiomysql/cursors.py", line 457, in _query
    await conn.query(q)
  File "/usr/local/lib/python3.12/site-packages/aiomysql/connection.py", line 469, in query
    await self._read_query_result(unbuffered=unbuffered)
  File "/usr/local/lib/python3.12/site-packages/aiomysql/connection.py", line 683, in _read_query_result
    await result.read()
  File "/usr/local/lib/python3.12/site-packages/aiomysql/connection.py", line 1164, in read
    first_packet = await self.connection._read_packet()
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aiomysql/connection.py", line 652, in _read_packet
    packet.raise_for_error()
  File "/usr/local/lib/python3.12/site-packages/pymysql/protocol.py", line 219, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "/usr/local/lib/python3.12/site-packages/pymysql/err.py", line 150, in raise_mysql_exception
    raise errorclass(errno, errval)
pymysql.err.OperationalError: (1101, "BLOB, TEXT, GEOMETRY or JSON column 'persona_content' can't have a default value")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/AstrBot/data/plugins/astrbot_plugin_self_learning/services/database/sqlalchemy_database_manager.py", line 76, in start
    await self.engine.create_tables()
  File "/AstrBot/data/plugins/astrbot_plugin_self_learning/core/database/engine.py", line 231, in create_tables
    await conn.run_sync(Base.metadata.create_all)
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/engine.py", line 888, in run_sync
    return await greenlet_spawn(
           ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 203, in greenlet_spawn
    result = context.switch(value)
             ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/schema.py", line 5928, in create_all
    bind._run_ddl_visitor(
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 2467, in _run_ddl_visitor
    ).traverse_single(element)
      ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/visitors.py", line 661, in traverse_single
    return meth(obj, **kw)
           ^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/ddl.py", line 984, in visit_metadata
    self.traverse_single(
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/visitors.py", line 661, in traverse_single
    return meth(obj, **kw)
           ^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/ddl.py", line 1022, in visit_table
    )._invoke_with(self.connection)
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/ddl.py", line 321, in _invoke_with
    return bind.execute(self)
           ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1419, in execute
    return meth(
           ^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/ddl.py", line 187, in _execute_on_connection
    return connection._execute_ddl(
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1530, in _execute_ddl
    ret = self._execute_context(
          ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
    return self._exec_single_context(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
    self._handle_dbapi_exception(
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 2363, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
    cursor.execute(statement, parameters)
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py", line 230, in execute
    self._adapt_connection._handle_exception(error)
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py", line 368, in _handle_exception
    raise error.with_traceback(exc_info[2])
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py", line 228, in execute
    return self.await_(self._execute_async(operation, parameters))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
    return current.parent.switch(awaitable)  # type: ignore[no-any-return,attr-defined] # noqa: E501
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
    value = await result
            ^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py", line 251, in _execute_async
    result = await self._cursor.execute(operation, parameters)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aiomysql/cursors.py", line 239, in execute
    await self._query(query)
  File "/usr/local/lib/python3.12/site-packages/aiomysql/cursors.py", line 457, in _query
    await conn.query(q)
  File "/usr/local/lib/python3.12/site-packages/aiomysql/connection.py", line 469, in query
    await self._read_query_result(unbuffered=unbuffered)
  File "/usr/local/lib/python3.12/site-packages/aiomysql/connection.py", line 683, in _read_query_result
    await result.read()
  File "/usr/local/lib/python3.12/site-packages/aiomysql/connection.py", line 1164, in read
    first_packet = await self.connection._read_packet()
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aiomysql/connection.py", line 652, in _read_packet
    packet.raise_for_error()
  File "/usr/local/lib/python3.12/site-packages/pymysql/protocol.py", line 219, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "/usr/local/lib/python3.12/site-packages/pymysql/err.py", line 150, in raise_mysql_exception
    raise errorclass(errno, errval)
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1101, "BLOB, TEXT, GEOMETRY or JSON column 'persona_content' can't have a default value")
[SQL: 
CREATE TABLE persona_backups (
	id INTEGER NOT NULL AUTO_INCREMENT, 
	group_id VARCHAR(255) NOT NULL DEFAULT 'default', 
	backup_name VARCHAR(255) NOT NULL, 
	timestamp FLOAT NOT NULL, 
	reason TEXT, 
	persona_config TEXT, 
	original_persona TEXT, 
	imitation_dialogues TEXT, 
	backup_reason TEXT, 
	backup_time FLOAT, 
	persona_content TEXT DEFAULT '', 
	created_at DATETIME, 
	PRIMARY KEY (id)
)

]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
[2026-02-23 17:20:22.909] [Plug] [ERRO] [v4.17.6] [webui.manager:102]: 启动数据库管理器失败: 数据库管理器启动失败
Traceback (most recent call last):
  File "/AstrBot/data/plugins/astrbot_plugin_self_learning/webui/manager.py", line 100, in immediate_start
    raise RuntimeError("数据库管理器启动失败")
RuntimeError: 数据库管理器启动失败
[2026-02-23 17:20:24.365] [Plug] [INFO] [core.plugin_lifecycle:317]: 尝试启动数据库管理器 (第 2/3 次)
[2026-02-23 17:20:24.365] [Plug] [INFO] [database.sqlalchemy_database_manager:66]: [DomainRouter] 开始启动…
[2026-02-23 17:20:24.374] [Plug] [INFO] [database.engine:61]: [DatabaseEngine] 数据库引擎初始化成功
[2026-02-23 17:20:24.374] [Plug] [INFO] [database.sqlalchemy_database_manager:74]: [DomainRouter] 数据库引擎已创建
[2026-02-23 17:20:24.516] [Plug] [ERRO] [v4.17.6] [database.engine:242]: [DatabaseEngine] 创建表失败: (pymysql.err.OperationalError) (1101, "BLOB, TEXT, GEOMETRY or JSON column 'persona_content' can't have a default value")
[SQL: 
CREATE TABLE persona_backups (
	id INTEGER NOT NULL AUTO_INCREMENT, 
	group_id VARCHAR(255) NOT NULL DEFAULT 'default', 
	backup_name VARCHAR(255) NOT NULL, 
	timestamp FLOAT NOT NULL, 
	reason TEXT, 
	persona_config TEXT, 
	original_persona TEXT, 
	imitation_dialogues TEXT, 
	backup_reason TEXT, 
	backup_time FLOAT, 
	persona_content TEXT DEFAULT '', 
	created_at DATETIME, 
	PRIMARY KEY (id)
)

]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
[2026-02-23 17:20:24.517] [Plug] [ERRO] [v4.17.6] [database.sqlalchemy_database_manager:93]: [DomainRouter] 启动失败: (pymysql.err.OperationalError) (1101, "BLOB, TEXT, GEOMETRY or JSON column 'persona_content' can't have a default value")
[SQL: 
CREATE TABLE persona_backups (
	id INTEGER NOT NULL AUTO_INCREMENT, 
	group_id VARCHAR(255) NOT NULL DEFAULT 'default', 
	backup_name VARCHAR(255) NOT NULL, 
	timestamp FLOAT NOT NULL, 
	reason TEXT, 
	persona_config TEXT, 
	original_persona TEXT, 
	imitation_dialogues TEXT, 
	backup_reason TEXT, 
	backup_time FLOAT, 
	persona_content TEXT DEFAULT '', 
	created_at DATETIME, 
	PRIMARY KEY (id)
)

]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
    cursor.execute(statement, parameters)
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py", line 230, in execute
    self._adapt_connection._handle_exception(error)
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py", line 368, in _handle_exception
    raise error.with_traceback(exc_info[2])
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py", line 228, in execute
    return self.await_(self._execute_async(operation, parameters))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
    return current.parent.switch(awaitable)  # type: ignore[no-any-return,attr-defined] # noqa: E501
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
    value = await result
            ^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py", line 251, in _execute_async
    result = await self._cursor.execute(operation, parameters)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aiomysql/cursors.py", line 239, in execute
    await self._query(query)
  File "/usr/local/lib/python3.12/site-packages/aiomysql/cursors.py", line 457, in _query
    await conn.query(q)
  File "/usr/local/lib/python3.12/site-packages/aiomysql/connection.py", line 469, in query
    await self._read_query_result(unbuffered=unbuffered)
  File "/usr/local/lib/python3.12/site-packages/aiomysql/connection.py", line 683, in _read_query_result
    await result.read()
  File "/usr/local/lib/python3.12/site-packages/aiomysql/connection.py", line 1164, in read
    first_packet = await self.connection._read_packet()
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aiomysql/connection.py", line 652, in _read_packet
    packet.raise_for_error()
  File "/usr/local/lib/python3.12/site-packages/pymysql/protocol.py", line 219, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "/usr/local/lib/python3.12/site-packages/pymysql/err.py", line 150, in raise_mysql_exception
    raise errorclass(errno, errval)
pymysql.err.OperationalError: (1101, "BLOB, TEXT, GEOMETRY or JSON column 'persona_content' can't have a default value")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/AstrBot/data/plugins/astrbot_plugin_self_learning/services/database/sqlalchemy_database_manager.py", line 76, in start
    await self.engine.create_tables()
  File "/AstrBot/data/plugins/astrbot_plugin_self_learning/core/database/engine.py", line 231, in create_tables
    await conn.run_sync(Base.metadata.create_all)
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/engine.py", line 888, in run_sync
    return await greenlet_spawn(
           ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 203, in greenlet_spawn
    result = context.switch(value)
             ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/schema.py", line 5928, in create_all
    bind._run_ddl_visitor(
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 2467, in _run_ddl_visitor
    ).traverse_single(element)
      ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/visitors.py", line 661, in traverse_single
    return meth(obj, **kw)
           ^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/ddl.py", line 984, in visit_metadata
    self.traverse_single(
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/visitors.py", line 661, in traverse_single
    return meth(obj, **kw)
           ^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/ddl.py", line 1022, in visit_table
    )._invoke_with(self.connection)
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/ddl.py", line 321, in _invoke_with
    return bind.execute(self)
           ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1419, in execute
    return meth(
           ^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/ddl.py", line 187, in _execute_on_connection
    return connection._execute_ddl(
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1530, in _execute_ddl
    ret = self._execute_context(
          ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
    return self._exec_single_context(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
    self._handle_dbapi_exception(
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 2363, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
    cursor.execute(statement, parameters)
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py", line 230, in execute
    self._adapt_connection._handle_exception(error)
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py", line 368, in _handle_exception
    raise error.with_traceback(exc_info[2])
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py", line 228, in execute
    return self.await_(self._execute_async(operation, parameters))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
    return current.parent.switch(awaitable)  # type: ignore[no-any-return,attr-defined] # noqa: E501
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
    value = await result
            ^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py", line 251, in _execute_async
    result = await self._cursor.execute(operation, parameters)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aiomysql/cursors.py", line 239, in execute
    await self._query(query)
  File "/usr/local/lib/python3.12/site-packages/aiomysql/cursors.py", line 457, in _query
    await conn.query(q)
  File "/usr/local/lib/python3.12/site-packages/aiomysql/connection.py", line 469, in query
    await self._read_query_result(unbuffered=unbuffered)
  File "/usr/local/lib/python3.12/site-packages/aiomysql/connection.py", line 683, in _read_query_result
    await result.read()
  File "/usr/local/lib/python3.12/site-packages/aiomysql/connection.py", line 1164, in read
    first_packet = await self.connection._read_packet()
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aiomysql/connection.py", line 652, in _read_packet
    packet.raise_for_error()
  File "/usr/local/lib/python3.12/site-packages/pymysql/protocol.py", line 219, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "/usr/local/lib/python3.12/site-packages/pymysql/err.py", line 150, in raise_mysql_exception
    raise errorclass(errno, errval)
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1101, "BLOB, TEXT, GEOMETRY or JSON column 'persona_content' can't have a default value")
[SQL: 
CREATE TABLE persona_backups (
	id INTEGER NOT NULL AUTO_INCREMENT, 
	group_id VARCHAR(255) NOT NULL DEFAULT 'default', 
	backup_name VARCHAR(255) NOT NULL, 
	timestamp FLOAT NOT NULL, 
	reason TEXT, 
	persona_config TEXT, 
	original_persona TEXT, 
	imitation_dialogues TEXT, 
	backup_reason TEXT, 
	backup_time FLOAT, 
	persona_content TEXT DEFAULT '', 
	created_at DATETIME, 
	PRIMARY KEY (id)
)

]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
[2026-02-23 17:20:24.526] [Plug] [WARN] [v4.17.6] [core.plugin_lifecycle:323]: 数据库管理器启动返回 False (尝试 2/3)
[2026-02-23 17:20:26.528] [Plug] [INFO] [core.plugin_lifecycle:317]: 尝试启动数据库管理器 (第 3/3 次)
[2026-02-23 17:20:26.528] [Plug] [INFO] [database.sqlalchemy_database_manager:66]: [DomainRouter] 开始启动…
[2026-02-23 17:20:26.538] [Plug] [INFO] [database.engine:61]: [DatabaseEngine] 数据库引擎初始化成功
[2026-02-23 17:20:26.538] [Plug] [INFO] [database.sqlalchemy_database_manager:74]: [DomainRouter] 数据库引擎已创建
[2026-02-23 17:20:26.697] [Plug] [ERRO] [v4.17.6] [database.engine:242]: [DatabaseEngine] 创建表失败: (pymysql.err.OperationalError) (1101, "BLOB, TEXT, GEOMETRY or JSON column 'persona_content' can't have a default value")
[SQL: 
CREATE TABLE persona_backups (
	id INTEGER NOT NULL AUTO_INCREMENT, 
	group_id VARCHAR(255) NOT NULL DEFAULT 'default', 
	backup_name VARCHAR(255) NOT NULL, 
	timestamp FLOAT NOT NULL, 
	reason TEXT, 
	persona_config TEXT, 
	original_persona TEXT, 
	imitation_dialogues TEXT, 
	backup_reason TEXT, 
	backup_time FLOAT, 
	persona_content TEXT DEFAULT '', 
	created_at DATETIME, 
	PRIMARY KEY (id)
)

]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
[2026-02-23 17:20:26.697] [Plug] [ERRO] [v4.17.6] [database.sqlalchemy_database_manager:93]: [DomainRouter] 启动失败: (pymysql.err.OperationalError) (1101, "BLOB, TEXT, GEOMETRY or JSON column 'persona_content' can't have a default value")
[SQL: 
CREATE TABLE persona_backups (
	id INTEGER NOT NULL AUTO_INCREMENT, 
	group_id VARCHAR(255) NOT NULL DEFAULT 'default', 
	backup_name VARCHAR(255) NOT NULL, 
	timestamp FLOAT NOT NULL, 
	reason TEXT, 
	persona_config TEXT, 
	original_persona TEXT, 
	imitation_dialogues TEXT, 
	backup_reason TEXT, 
	backup_time FLOAT, 
	persona_content TEXT DEFAULT '', 
	created_at DATETIME, 
	PRIMARY KEY (id)
)

]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
    cursor.execute(statement, parameters)
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py", line 230, in execute
    self._adapt_connection._handle_exception(error)
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py", line 368, in _handle_exception
    raise error.with_traceback(exc_info[2])
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py", line 228, in execute
    return self.await_(self._execute_async(operation, parameters))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
    return current.parent.switch(awaitable)  # type: ignore[no-any-return,attr-defined] # noqa: E501
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
    value = await result
            ^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py", line 251, in _execute_async
    result = await self._cursor.execute(operation, parameters)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aiomysql/cursors.py", line 239, in execute
    await self._query(query)
  File "/usr/local/lib/python3.12/site-packages/aiomysql/cursors.py", line 457, in _query
    await conn.query(q)
  File "/usr/local/lib/python3.12/site-packages/aiomysql/connection.py", line 469, in query
    await self._read_query_result(unbuffered=unbuffered)
  File "/usr/local/lib/python3.12/site-packages/aiomysql/connection.py", line 683, in _read_query_result
    await result.read()
  File "/usr/local/lib/python3.12/site-packages/aiomysql/connection.py", line 1164, in read
    first_packet = await self.connection._read_packet()
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aiomysql/connection.py", line 652, in _read_packet
    packet.raise_for_error()
  File "/usr/local/lib/python3.12/site-packages/pymysql/protocol.py", line 219, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "/usr/local/lib/python3.12/site-packages/pymysql/err.py", line 150, in raise_mysql_exception
    raise errorclass(errno, errval)
pymysql.err.OperationalError: (1101, "BLOB, TEXT, GEOMETRY or JSON column 'persona_content' can't have a default value")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/AstrBot/data/plugins/astrbot_plugin_self_learning/services/database/sqlalchemy_database_manager.py", line 76, in start
    await self.engine.create_tables()
  File "/AstrBot/data/plugins/astrbot_plugin_self_learning/core/database/engine.py", line 231, in create_tables
    await conn.run_sync(Base.metadata.create_all)
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/engine.py", line 888, in run_sync
    return await greenlet_spawn(
           ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 203, in greenlet_spawn
    result = context.switch(value)
             ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/schema.py", line 5928, in create_all
    bind._run_ddl_visitor(
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 2467, in _run_ddl_visitor
    ).traverse_single(element)
      ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/visitors.py", line 661, in traverse_single
    return meth(obj, **kw)
           ^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/ddl.py", line 984, in visit_metadata
    self.traverse_single(
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/visitors.py", line 661, in traverse_single
    return meth(obj, **kw)
           ^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/ddl.py", line 1022, in visit_table
    )._invoke_with(self.connection)
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/ddl.py", line 321, in _invoke_with
    return bind.execute(self)
           ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1419, in execute
    return meth(
           ^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/ddl.py", line 187, in _execute_on_connection
    return connection._execute_ddl(
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1530, in _execute_ddl
    ret = self._execute_context(
          ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
    return self._exec_single_context(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
    self._handle_dbapi_exception(
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 2363, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
    self.dialect.do_execute(
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 952, in do_execute
    cursor.execute(statement, parameters)
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py", line 230, in execute
    self._adapt_connection._handle_exception(error)
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py", line 368, in _handle_exception
    raise error.with_traceback(exc_info[2])
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py", line 228, in execute
    return self.await_(self._execute_async(operation, parameters))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only
    return current.parent.switch(awaitable)  # type: ignore[no-any-return,attr-defined] # noqa: E501
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn
    value = await result
            ^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/sqlalchemy/connectors/asyncio.py", line 251, in _execute_async
    result = await self._cursor.execute(operation, parameters)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aiomysql/cursors.py", line 239, in execute
    await self._query(query)
  File "/usr/local/lib/python3.12/site-packages/aiomysql/cursors.py", line 457, in _query
    await conn.query(q)
  File "/usr/local/lib/python3.12/site-packages/aiomysql/connection.py", line 469, in query
    await self._read_query_result(unbuffered=unbuffered)
  File "/usr/local/lib/python3.12/site-packages/aiomysql/connection.py", line 683, in _read_query_result
    await result.read()
  File "/usr/local/lib/python3.12/site-packages/aiomysql/connection.py", line 1164, in read
    first_packet = await self.connection._read_packet()
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/aiomysql/connection.py", line 652, in _read_packet
    packet.raise_for_error()
  File "/usr/local/lib/python3.12/site-packages/pymysql/protocol.py", line 219, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "/usr/local/lib/python3.12/site-packages/pymysql/err.py", line 150, in raise_mysql_exception
    raise errorclass(errno, errval)
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1101, "BLOB, TEXT, GEOMETRY or JSON column 'persona_content' can't have a default value")
[SQL: 
CREATE TABLE persona_backups (
	id INTEGER NOT NULL AUTO_INCREMENT, 
	group_id VARCHAR(255) NOT NULL DEFAULT 'default', 
	backup_name VARCHAR(255) NOT NULL, 
	timestamp FLOAT NOT NULL, 
	reason TEXT, 
	persona_config TEXT, 
	original_persona TEXT, 
	imitation_dialogues TEXT, 
	backup_reason TEXT, 
	backup_time FLOAT, 
	persona_content TEXT DEFAULT '', 
	created_at DATETIME, 
	PRIMARY KEY (id)
)

]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
[2026-02-23 17:20:26.710] [Plug] [WARN] [v4.17.6] [core.plugin_lifecycle:323]: 数据库管理器启动返回 False (尝试 3/3)
[2026-02-23 17:20:26.710] [Plug] [ERRO] [v4.17.6] [core.plugin_lifecycle:337]: 数据库管理器启动失败: 所有重试均失败
[2026-02-23 17:20:26.710] [Plug] [WARN] [v4.17.6] [core.plugin_lifecycle:340]: 插件将在数据库功能受限的情况下继续运行
[2026-02-23 17:20:26.710] [Plug] [INFO] [core.patterns:43]: 服务状态变更: created -> initializing
[2026-02-23 17:20:26.773] [Plug] [ERRO] [v4.17.6] [state.affection_manager:510]: 获取活跃群组列表失败: (pymysql.err.ProgrammingError) (1146, "Table 'aiaiaiai.raw_messages' doesn't exist")
[SQL: SELECT raw_messages.group_id, count(*) AS msg_count 
FROM raw_messages 
WHERE raw_messages.timestamp > %s AND raw_messages.group_id IS NOT NULL AND raw_messages.group_id != %s GROUP BY raw_messages.group_id 
HAVING count(*) >= %s ORDER BY count(*) DESC 
 LIMIT %s]
[parameters: (1771752026.7107787, '', 3, 20)]
(Background on this error at: https://sqlalche.me/e/20/f405)
[2026-02-23 17:20:26.773] [Plug] [INFO] [state.affection_manager:415]: 没有发现活跃群组,跳过情绪初始化

Relevant Configuration

应该和配置没关系

Additional Context

Image数据库版本8.0和5.7都试过了

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions