使用nb-cli安装插件后启动报错
Closed this issue · 15 comments
环境
- nonebot-bison 版本:0.7.1
- nonebot 版本:2.0.0rc4
- 安装方式:通过 nb-cli 安装
- 操作系统:macOS 13.2.1
- 其他可能相关的版本:
- nonebot-adapter-onebot 2.2.2
- nonebot-bison 0.7.1
- nonebot-plugin-apscheduler 0.2.0
- nonebot-plugin-datastore 0.6.2
- nonebot-plugin-htmlrender 0.2.0.3
- nonebot-plugin-localstore 0.4.1
- nonebot2 2.0.0rc4
- playwright 1.32.1
- SQLAlchemy 2.0.9
- alembic 1.10.3
- fastapi 0.95.1
问题
在正常运行的项目基础上加装bison插件,启动失败,删除插件后又正常运行。考虑到可能是插件之间可能存在冲突问题,所以新建了一个项目单独安装插件,仍然报相同的错误。
麻烦开发大大们帮忙看看,非常感谢
复现问题步骤
- 使用nb-cli创建一个项目(bootstrap,驱动器FastAPI,适配器OneBot V11,安装依赖,创建虚拟环境)
- 进入虚拟环境,安装插件
nb plugin install nonebot-bison
nb run
运行,然后报错退出,日志如下
日志
使用 Python: /Users/ukm/Developer/Python/NoneBot/bisontest/.venv/bin/python
04-19 13:38:15 [SUCCESS] nonebot | NoneBot is initializing...
04-19 13:38:15 [INFO] nonebot | Current Env: prod
04-19 13:38:15 [SUCCESS] nonebot | Succeeded to load plugin "echo" from "nonebot.plugins.echo"
04-19 13:38:15 [SUCCESS] nonebot | Succeeded to load plugin "nonebot_plugin_apscheduler"
04-19 13:38:15 [SUCCESS] nonebot | Succeeded to load plugin "nonebot_plugin_localstore"
04-19 13:38:18 [SUCCESS] nonebot | Succeeded to load plugin "nonebot_plugin_datastore"
04-19 13:38:21 [SUCCESS] nonebot | Succeeded to load plugin "nonebot_plugin_htmlrender"
04-19 13:38:21 [INFO] nonebot_bison | Nonebot test frontend will be running at: http://localhost:8080/bison
04-19 13:38:21 [SUCCESS] nonebot | Succeeded to load plugin "nonebot_bison"
04-19 13:38:21 [SUCCESS] nonebot | Running NoneBot...
04-19 13:38:23 [INFO] logging | Started server process [35220]
04-19 13:38:23 [INFO] logging | Waiting for application startup.
04-19 13:38:23 [INFO] nonebot_plugin_apscheduler | Scheduler Started
04-19 13:38:24 [ERROR] logging | Traceback (most recent call last):
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/starlette/routing.py", line 677, in lifespan
async with self.lifespan_context(app) as maybe_state:
File "/Users/ukm/.pyenv/versions/3.11.3/lib/python3.11/contextlib.py", line 204, in __aenter__
return await anext(self.gen)
^^^^^^^^^^^^^^^^^^^^^
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/nonebot/drivers/fastapi.py", line 165, in _lifespan_manager
await self._lifespan.startup()
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/nonebot/drivers/_lifespan.py", line 35, in startup
await self._run_lifespan_func(self._startup_funcs)
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/nonebot/drivers/_lifespan.py", line 29, in _run_lifespan_func
await cast(ASYNC_LIFESPAN_FUNC, func)()
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/nonebot_plugin_datastore/db.py", line 86, in init_db
await run_upgrade()
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/nonebot_plugin_datastore/script/utils.py", line 121, in run_upgrade
await upgrade(config, "head")
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/nonebot_plugin_datastore/script/command.py", line 245, in upgrade
await run_migration()
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/nonebot_plugin_datastore/script/utils.py", line 109, in run_migration
await connection.run_sync(do_run_migrations, plugin_name)
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/ext/asyncio/engine.py", line 787, in run_sync
return await greenlet_spawn(fn, self._proxied, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 167, in greenlet_spawn
result = context.switch(value)
^^^^^^^^^^^^^^^^^^^^^
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/nonebot_plugin_datastore/script/utils.py", line 101, in do_run_migrations
context.run_migrations()
File "<string>", line 8, in run_migrations
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/alembic/runtime/environment.py", line 868, in run_migrations
self.get_context().run_migrations(**kw)
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/alembic/runtime/migration.py", line 622, in run_migrations
step.migration_fn(**kw)
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/nonebot_bison/config/migrations/bd92923c218f_alter_json_not_null.py", line 38, in upgrade
set_default_value()
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/nonebot_bison/config/migrations/bd92923c218f_alter_json_not_null.py", line 23, in set_default_value
Base.prepare(autoload_with=op.get_bind())
File "<string>", line 2, in prepare
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/util/deprecations.py", line 277, in warned
return fn(*args, **kwargs) # type: ignore[no-any-return]
^^^^^^^^^^^^^^^^^^^
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/ext/automap.py", line 1230, in prepare
cls.metadata.reflect(autoload_with, **opts) # type: ignore[arg-type] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/sql/schema.py", line 5553, in reflect
Table(name, self, **reflect_opts)
File "<string>", line 2, in __new__
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/util/deprecations.py", line 277, in warned
return fn(*args, **kwargs) # type: ignore[no-any-return]
^^^^^^^^^^^^^^^^^^^
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/sql/schema.py", line 428, in __new__
return cls._new(*args, **kw)
^^^^^^^^^^^^^^^^^^^^^
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/sql/schema.py", line 482, in _new
with util.safe_reraise():
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/util/langhelpers.py", line 147, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/sql/schema.py", line 478, in _new
table.__init__(name, metadata, *args, _no_init=False, **kw)
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/sql/schema.py", line 854, in __init__
self._autoload(
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/sql/schema.py", line 886, in _autoload
conn_insp.reflect_table(
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/engine/reflection.py", line 1579, in reflect_table
self._reflect_fk(
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/engine/reflection.py", line 1780, in _reflect_fk
sa_schema.Table(
File "<string>", line 2, in __new__
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/util/deprecations.py", line 277, in warned
return fn(*args, **kwargs) # type: ignore[no-any-return]
^^^^^^^^^^^^^^^^^^^
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/sql/schema.py", line 428, in __new__
return cls._new(*args, **kw)
^^^^^^^^^^^^^^^^^^^^^
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/sql/schema.py", line 482, in _new
with util.safe_reraise():
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/util/langhelpers.py", line 147, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/sql/schema.py", line 478, in _new
table.__init__(name, metadata, *args, _no_init=False, **kw)
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/sql/schema.py", line 854, in __init__
self._autoload(
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/sql/schema.py", line 886, in _autoload
conn_insp.reflect_table(
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/engine/reflection.py", line 1547, in reflect_table
raise exc.NoSuchTableError(table_name)
sqlalchemy.exc.NoSuchTableError: target
04-19 13:38:24 [ERROR] logging | Application startup failed. Exiting.
- 我搜索过了 issue,但是并没有发现过与我类似的问题
- 我确认在日志中去掉了敏感信息
能否运行 nb datastore history
后,将输出发上来呢?
感谢回复,这是运行nb datastore history
的输出
04-20 09:07:04 [SUCCESS] nonebot | NoneBot is initializing...
04-20 09:07:04 [INFO] nonebot | Current Env: prod
04-20 09:07:04 [SUCCESS] nonebot | Succeeded to load plugin "echo" from "nonebot.plugins.echo"
04-20 09:07:04 [SUCCESS] nonebot | Succeeded to load plugin "nonebot_plugin_apscheduler"
04-20 09:07:04 [SUCCESS] nonebot | Succeeded to load plugin "nonebot_plugin_localstore"
04-20 09:07:05 [SUCCESS] nonebot | Succeeded to load plugin "nonebot_plugin_datastore"
04-20 09:07:05 [SUCCESS] nonebot | Succeeded to load plugin "nonebot_plugin_htmlrender"
04-20 09:07:05 [INFO] nonebot_bison | Nonebot test frontend will be running at: http://localhost:8080/bison
04-20 09:07:05 [SUCCESS] nonebot | Succeeded to load plugin "nonebot_bison"
<string>:20: DeprecationWarning: SelectableGroups dict interface is deprecated. Use select.
04-20 09:07:05 [INFO] nonebot_plugin_datastore | 查看插件 nonebot_bison 的数据库历史
bd92923c218f -> aceef470d69c (head), alter fields not null
5da28f6facb3 -> bd92923c218f, alter_json_not_null
5f3370328e44 -> 5da28f6facb3, rename tables
a333d6224193 -> 5f3370328e44, add time-weight table
4a46ba54a3f3 -> a333d6224193, add last scheduled time
c97c445e2bdb -> 4a46ba54a3f3, alter type
0571870f5222 -> c97c445e2bdb, add constraint
<base> -> 0571870f5222, init db
感觉没啥问题啊,再试试 nb datastore history -i
呢?这个是可以查看当前的 revision。
最后你可以试试 nb datastore downgrade base
然后再 nb datastore upgrade
,看看是不是还是一样报错。相当于重新来一遍。
这是nb datastore history -i
的输出
04-20 09:35:27 [SUCCESS] nonebot | NoneBot is initializing...
04-20 09:35:27 [INFO] nonebot | Current Env: prod
04-20 09:35:28 [SUCCESS] nonebot | Succeeded to load plugin "echo" from "nonebot.plugins.echo"
04-20 09:35:28 [SUCCESS] nonebot | Succeeded to load plugin "nonebot_plugin_apscheduler"
04-20 09:35:28 [SUCCESS] nonebot | Succeeded to load plugin "nonebot_plugin_localstore"
04-20 09:35:29 [SUCCESS] nonebot | Succeeded to load plugin "nonebot_plugin_datastore"
04-20 09:35:30 [SUCCESS] nonebot | Succeeded to load plugin "nonebot_plugin_htmlrender"
04-20 09:35:30 [INFO] nonebot_bison | Nonebot test frontend will be running at: http://localhost:8080/bison
04-20 09:35:30 [SUCCESS] nonebot | Succeeded to load plugin "nonebot_bison"
<string>:20: DeprecationWarning: SelectableGroups dict interface is deprecated. Use select.
04-20 09:35:31 [INFO] nonebot_plugin_datastore | 查看插件 nonebot_bison 的数据库历史
bd92923c218f -> aceef470d69c (head), alter fields not null
5da28f6facb3 -> bd92923c218f, alter_json_not_null
5f3370328e44 -> 5da28f6facb3 (current), rename tables
a333d6224193 -> 5f3370328e44, add time-weight table
4a46ba54a3f3 -> a333d6224193, add last scheduled time
c97c445e2bdb -> 4a46ba54a3f3, alter type
0571870f5222 -> c97c445e2bdb, add constraint
<base> -> 0571870f5222, init db
在执行nb datastore upgrade
这一步的时候就报错了
使用 Python: /Users/ukm/Developer/Python/NoneBot/bisontest/.venv/bin/python
04-20 09:36:53 [SUCCESS] nonebot | NoneBot is initializing...
04-20 09:36:53 [INFO] nonebot | Current Env: prod
04-20 09:36:53 [SUCCESS] nonebot | Succeeded to load plugin "echo" from "nonebot.plugins.echo"
04-20 09:36:53 [SUCCESS] nonebot | Succeeded to load plugin "nonebot_plugin_apscheduler"
04-20 09:36:53 [SUCCESS] nonebot | Succeeded to load plugin "nonebot_plugin_localstore"
04-20 09:36:53 [SUCCESS] nonebot | Succeeded to load plugin "nonebot_plugin_datastore"
04-20 09:36:54 [SUCCESS] nonebot | Succeeded to load plugin "nonebot_plugin_htmlrender"
04-20 09:36:54 [INFO] nonebot_bison | Nonebot test frontend will be running at: http://localhost:8080/bison
04-20 09:36:54 [SUCCESS] nonebot | Succeeded to load plugin "nonebot_bison"
<string>:20: DeprecationWarning: SelectableGroups dict interface is deprecated. Use select.
04-20 09:36:54 [INFO] nonebot_plugin_datastore | 升级插件 nonebot_bison 的数据库
Traceback (most recent call last):
File "<string>", line 26, in <module>
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/nonebot_plugin_datastore/script/cli.py", line 204, in main
anyio.run(run_sync(cli)) # pragma: no cover
^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/anyio/_core/_eventloop.py", line 70, in run
return asynclib.run(func, *args, **backend_options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 292, in run
return native_run(wrapper(), debug=debug)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ukm/.pyenv/versions/3.11.3/lib/python3.11/asyncio/runners.py", line 190, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File "/Users/ukm/.pyenv/versions/3.11.3/lib/python3.11/asyncio/runners.py", line 118, in run
return self._loop.run_until_complete(task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ukm/.pyenv/versions/3.11.3/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 287, in wrapper
return await func(*args)
^^^^^^^^^^^^^^^^^
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/nonebot_plugin_datastore/script/cli.py", line 30, in wrapper
return await anyio.to_thread.run_sync(partial(func, *args, **kwargs))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/anyio/to_thread.py", line 31, in run_sync
return await get_asynclib().run_sync_in_worker_thread(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 937, in run_sync_in_worker_thread
return await future
^^^^^^^^^^^^
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 867, in run
result = context.run(func, *args)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/click/core.py", line 1130, in __call__
return self.main(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
^^^^^^^^^^^^^^^^
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/click/core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/nonebot_plugin_datastore/script/cli.py", line 38, in wrapper
return anyio.from_thread.run(partial(func, *args, **kwargs))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/anyio/from_thread.py", line 49, in run
return asynclib.run_async_from_thread(func, *args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/anyio/_backends/_asyncio.py", line 970, in run_async_from_thread
return f.result()
^^^^^^^^^^
File "/Users/ukm/.pyenv/versions/3.11.3/lib/python3.11/concurrent/futures/_base.py", line 456, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "/Users/ukm/.pyenv/versions/3.11.3/lib/python3.11/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/nonebot_plugin_datastore/script/cli.py", line 105, in upgrade
await command.upgrade(config, revision)
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/nonebot_plugin_datastore/script/command.py", line 245, in upgrade
await run_migration()
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/nonebot_plugin_datastore/script/utils.py", line 109, in run_migration
await connection.run_sync(do_run_migrations, plugin_name)
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/ext/asyncio/engine.py", line 787, in run_sync
return await greenlet_spawn(fn, self._proxied, *arg, **kw)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 167, in greenlet_spawn
result = context.switch(value)
^^^^^^^^^^^^^^^^^^^^^
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/nonebot_plugin_datastore/script/utils.py", line 101, in do_run_migrations
context.run_migrations()
File "<string>", line 8, in run_migrations
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/alembic/runtime/environment.py", line 868, in run_migrations
self.get_context().run_migrations(**kw)
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/alembic/runtime/migration.py", line 622, in run_migrations
step.migration_fn(**kw)
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/nonebot_bison/config/migrations/bd92923c218f_alter_json_not_null.py", line 38, in upgrade
set_default_value()
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/nonebot_bison/config/migrations/bd92923c218f_alter_json_not_null.py", line 23, in set_default_value
Base.prepare(autoload_with=op.get_bind())
File "<string>", line 2, in prepare
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/util/deprecations.py", line 277, in warned
return fn(*args, **kwargs) # type: ignore[no-any-return]
^^^^^^^^^^^^^^^^^^^
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/ext/automap.py", line 1230, in prepare
cls.metadata.reflect(autoload_with, **opts) # type: ignore[arg-type] # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/sql/schema.py", line 5553, in reflect
Table(name, self, **reflect_opts)
File "<string>", line 2, in __new__
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/util/deprecations.py", line 277, in warned
return fn(*args, **kwargs) # type: ignore[no-any-return]
^^^^^^^^^^^^^^^^^^^
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/sql/schema.py", line 428, in __new__
return cls._new(*args, **kw)
^^^^^^^^^^^^^^^^^^^^^
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/sql/schema.py", line 482, in _new
with util.safe_reraise():
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/util/langhelpers.py", line 147, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/sql/schema.py", line 478, in _new
table.__init__(name, metadata, *args, _no_init=False, **kw)
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/sql/schema.py", line 854, in __init__
self._autoload(
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/sql/schema.py", line 886, in _autoload
conn_insp.reflect_table(
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/engine/reflection.py", line 1579, in reflect_table
self._reflect_fk(
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/engine/reflection.py", line 1780, in _reflect_fk
sa_schema.Table(
File "<string>", line 2, in __new__
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/util/deprecations.py", line 277, in warned
return fn(*args, **kwargs) # type: ignore[no-any-return]
^^^^^^^^^^^^^^^^^^^
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/sql/schema.py", line 428, in __new__
return cls._new(*args, **kw)
^^^^^^^^^^^^^^^^^^^^^
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/sql/schema.py", line 482, in _new
with util.safe_reraise():
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/util/langhelpers.py", line 147, in __exit__
raise exc_value.with_traceback(exc_tb)
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/sql/schema.py", line 478, in _new
table.__init__(name, metadata, *args, _no_init=False, **kw)
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/sql/schema.py", line 854, in __init__
self._autoload(
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/sql/schema.py", line 886, in _autoload
conn_insp.reflect_table(
File "/Users/ukm/Developer/Python/NoneBot/bisontest/.venv/lib/python3.11/site-packages/sqlalchemy/engine/reflection.py", line 1547, in reflect_table
raise exc.NoSuchTableError(table_name)
sqlalchemy.exc.NoSuchTableError: target
看来需要看看数据库内部的情况了,你方便看看现在数据库内有什么表吗?DB Browser for SQLite
这个软件就可以。
我在新建的项目找不到任何数据库文件,会不会是这个原因。在我原本运行的项目里的data
文件夹则是有
|-- data
|-- data.sqlite3
|-- data.sqlite3-shm
|-- data.sqlite3-wal
|-- 其他插件的数据文件夹(略)
不会,因为 datastore 的数据库存放位置比较标准(使用官方插件 localstore 提供的位置)。你可以通过 nb datastore dir
查看。对了,在数据目录下的 data.db。
话说是加不进来吗?如果不行就加这个吧 https://jq.qq.com/?_wv=1027&k=7zQUpiGp。
经过进一步排查,并直接运行以下脚本发现,问题出在 sqlite 上。
import sqlite3
print(sqlite3.version)
print(sqlite3.sqlite_version)
con = sqlite3.connect("data.db")
cur = con.cursor()
cur.execute("ALTER TABLE target RENAME TO nonebot_bison_target")
cur.execute("ALTER TABLE user RENAME TO nonebot_bison_user")
cur.execute(
"ALTER TABLE schedule_time_weight RENAME TO nonebot_bison_scheduletimeweight"
)
cur.execute("ALTER TABLE subscribe RENAME TO nonebot_bison_subscribe")
sqlite3.sqlite_version=3.39.5
时修改表名reference会出现不更改的问题
sqlite3.sqlite_version=3.41.0
时不会出现这个问题