Closed LambdaYH closed 1 year ago
好耶,图片缓存!支持一下!!
创建数据库失败。载入可以正常,但是好像没办法创建数据库,报错不存在table。是不是需要写数据库链接什么的
创建数据库失败。载入可以正常,但是好像没办法创建数据库,报错不存在table。是不是需要写数据库链接什么的
nonebot-plugin-datastore在没配置数据库时候会默认创建一个sqlite
猜测是你插件的文件夹名不是nonebot_plugin_bottle
,需要把仓库内的nonebot_plugin_bottle
放进去才行
创建数据库失败。载入可以正常,但是好像没办法创建数据库,报错不存在table。是不是需要写数据库链接什么的
nonebot-plugin-datastore在没配置数据库时候会默认创建一个sqlite
猜测是你插件的文件夹名不是
nonebot_plugin_bottle
,需要把仓库内的nonebot_plugin_bottle
放进去才行
我是直接下载的zip不是clone也不是pip安装,你是说在这个nonebot_plugin_bottle外面还需要一个nonebot_plugin_bottle吗
创建数据库失败。载入可以正常,但是好像没办法创建数据库,报错不存在table。是不是需要写数据库链接什么的
nonebot-plugin-datastore在没配置数据库时候会默认创建一个sqlite 猜测是你插件的文件夹名不是
nonebot_plugin_bottle
,需要把仓库内的nonebot_plugin_bottle
放进去才行我是直接下载的zip不是clone也不是pip安装,你是说在这个nonebot_plugin_bottle外面还需要一个nonebot_plugin_bottle吗
我刚刚去重新装了个NoneBot2
确实发现了迁移时候的一个问题,不过和你这个不是同一个,下图是我使用插件时候的路径。
nonebot_plugin_bottle这个文件夹如果直接下载下来可能是叫nonebot_plugin_bottle-main
,然后需要把箭头指向的文件夹放进插件路径
创建数据库失败。载入可以正常,但是好像没办法创建数据库,报错不存在table。是不是需要写数据库链接什么的
nonebot-plugin-datastore在没配置数据库时候会默认创建一个sqlite 猜测是你插件的文件夹名不是
nonebot_plugin_bottle
,需要把仓库内的nonebot_plugin_bottle
放进去才行我是直接下载的zip不是clone也不是pip安装,你是说在这个nonebot_plugin_bottle外面还需要一个nonebot_plugin_bottle吗
我刚刚去重新装了个
NoneBot2
确实发现了迁移时候的一个问题,不过和你这个不是同一个,下图是我使用插件时候的路径。nonebot_plugin_bottle这个文件夹如果直接下载下来可能是叫
nonebot_plugin_bottle-main
,然后需要把箭头指向的文件夹放进插件路径
我也是这样做的,但是却不行。我在用另一个插件(中国象棋)也出现了同样的问题。是.env需要配置一些什么嘛。等下午我把详细报错截图看看
创建数据库失败。载入可以正常,但是好像没办法创建数据库,报错不存在table。是不是需要写数据库链接什么的
nonebot-plugin-datastore在没配置数据库时候会默认创建一个sqlite 猜测是你插件的文件夹名不是
nonebot_plugin_bottle
,需要把仓库内的nonebot_plugin_bottle
放进去才行我是直接下载的zip不是clone也不是pip安装,你是说在这个nonebot_plugin_bottle外面还需要一个nonebot_plugin_bottle吗
我刚刚去重新装了个
NoneBot2
确实发现了迁移时候的一个问题,不过和你这个不是同一个,下图是我使用插件时候的路径。 nonebot_plugin_bottle这个文件夹如果直接下载下来可能是叫nonebot_plugin_bottle-main
,然后需要把箭头指向的文件夹放进插件路径我也是这样做的,但是却不行。我在用另一个插件(中国象棋)也出现了同样的问题。是.env需要配置一些什么嘛。等下午我把详细报错截图看看
不用配置什么啊,我刚刚直接用新创的NB2项目加了下插件就跑起来了,刚刚加了下中国象棋也正常
然后这俩的表名是这样的
或许是因为这个问题https://github.com/he0119/nonebot-plugin-datastore/commit/d90cd0cdc86c7340f2db834a64c1e51d57ee4899
创建数据库失败。载入可以正常,但是好像没办法创建数据库,报错不存在table。是不是需要写数据库链接什么的
nonebot-plugin-datastore在没配置数据库时候会默认创建一个sqlite 猜测是你插件的文件夹名不是
nonebot_plugin_bottle
,需要把仓库内的nonebot_plugin_bottle
放进去才行我是直接下载的zip不是clone也不是pip安装,你是说在这个nonebot_plugin_bottle外面还需要一个nonebot_plugin_bottle吗
我刚刚去重新装了个
NoneBot2
确实发现了迁移时候的一个问题,不过和你这个不是同一个,下图是我使用插件时候的路径。 nonebot_plugin_bottle这个文件夹如果直接下载下来可能是叫nonebot_plugin_bottle-main
,然后需要把箭头指向的文件夹放进插件路径我也是这样做的,但是却不行。我在用另一个插件(中国象棋)也出现了同样的问题。是.env需要配置一些什么嘛。等下午我把详细报错截图看看
不用配置什么啊,我刚刚直接用新创的NB2项目加了下插件就跑起来了,刚刚加了下中国象棋也正常
然后这俩的表名是这样的
或许是因为这个问题https://github.com/he0119/nonebot-plugin-datastore/commit/d90cd0cdc86c7340f2db834a64c1e51d57ee4899
在启动的时候我好像并没有弹出数据库启动成功的log。我的目录结构是这样的:
报错是这样的:
应该就是在说创建表格失败的事。因为我之前没有用过数据库,不过我也不知道该怎么开启。我也百度了错误内容,但是搜索出来结果都不太相关,没办法解决。
不过我用的确实是nonebot2.0.0rc4
创建数据库失败。载入可以正常,但是好像没办法创建数据库,报错不存在table。是不是需要写数据库链接什么的
nonebot-plugin-datastore在没配置数据库时候会默认创建一个sqlite 猜测是你插件的文件夹名不是
nonebot_plugin_bottle
,需要把仓库内的nonebot_plugin_bottle
放进去才行我是直接下载的zip不是clone也不是pip安装,你是说在这个nonebot_plugin_bottle外面还需要一个nonebot_plugin_bottle吗
我刚刚去重新装了个
NoneBot2
确实发现了迁移时候的一个问题,不过和你这个不是同一个,下图是我使用插件时候的路径。 nonebot_plugin_bottle这个文件夹如果直接下载下来可能是叫nonebot_plugin_bottle-main
,然后需要把箭头指向的文件夹放进插件路径我也是这样做的,但是却不行。我在用另一个插件(中国象棋)也出现了同样的问题。是.env需要配置一些什么嘛。等下午我把详细报错截图看看
不用配置什么啊,我刚刚直接用新创的NB2项目加了下插件就跑起来了,刚刚加了下中国象棋也正常 然后这俩的表名是这样的 或许是因为这个问题he0119/nonebot-plugin-datastore@d90cd0c
在启动的时候我好像并没有弹出数据库启动成功的log。我的目录结构是这样的:
Yaobot
Yaobot
plugins
- nonebot_plugin_bottle
bot.py -.env
报错是这样的:
应该就是在说创建表格失败的事。因为我之前没有用过数据库,不过我也不知道该怎么开启。我也百度了错误内容,但是搜索出来结果都不太相关,没办法解决。
不过我用的确实是nonebot2.0.0rc4
那datastore
的版本有最新吗,可以看一下data.db
里面的表创建成啥样子了,windows默认在C:\Users<username>\AppData\Local\nonebot2\data.db
,使用
SQLiteSpy_1.9.1.zip
能看
创建数据库失败。载入可以正常,但是好像没办法创建数据库,报错不存在table。是不是需要写数据库链接什么的
nonebot-plugin-datastore在没配置数据库时候会默认创建一个sqlite 猜测是你插件的文件夹名不是
nonebot_plugin_bottle
,需要把仓库内的nonebot_plugin_bottle
放进去才行我是直接下载的zip不是clone也不是pip安装,你是说在这个nonebot_plugin_bottle外面还需要一个nonebot_plugin_bottle吗
我刚刚去重新装了个
NoneBot2
确实发现了迁移时候的一个问题,不过和你这个不是同一个,下图是我使用插件时候的路径。 nonebot_plugin_bottle这个文件夹如果直接下载下来可能是叫nonebot_plugin_bottle-main
,然后需要把箭头指向的文件夹放进插件路径我也是这样做的,但是却不行。我在用另一个插件(中国象棋)也出现了同样的问题。是.env需要配置一些什么嘛。等下午我把详细报错截图看看
不用配置什么啊,我刚刚直接用新创的NB2项目加了下插件就跑起来了,刚刚加了下中国象棋也正常 然后这俩的表名是这样的 或许是因为这个问题he0119/nonebot-plugin-datastore@d90cd0c
在启动的时候我好像并没有弹出数据库启动成功的log。我的目录结构是这样的:
Yaobot
Yaobot
plugins
- nonebot_plugin_bottle
bot.py -.env
报错是这样的:
应该就是在说创建表格失败的事。因为我之前没有用过数据库,不过我也不知道该怎么开启。我也百度了错误内容,但是搜索出来结果都不太相关,没办法解决。
不过我用的确实是nonebot2.0.0rc4
那
datastore
的版本有最新吗
问题解决了,原来是之前更新的时候没有更新fastapi,以后再也不用pip了,改用poetry
创建数据库失败。载入可以正常,但是好像没办法创建数据库,报错不存在table。是不是需要写数据库链接什么的
nonebot-plugin-datastore在没配置数据库时候会默认创建一个sqlite 猜测是你插件的文件夹名不是
nonebot_plugin_bottle
,需要把仓库内的nonebot_plugin_bottle
放进去才行我是直接下载的zip不是clone也不是pip安装,你是说在这个nonebot_plugin_bottle外面还需要一个nonebot_plugin_bottle吗
我刚刚去重新装了个
NoneBot2
确实发现了迁移时候的一个问题,不过和你这个不是同一个,下图是我使用插件时候的路径。 nonebot_plugin_bottle这个文件夹如果直接下载下来可能是叫nonebot_plugin_bottle-main
,然后需要把箭头指向的文件夹放进插件路径我也是这样做的,但是却不行。我在用另一个插件(中国象棋)也出现了同样的问题。是.env需要配置一些什么嘛。等下午我把详细报错截图看看
不用配置什么啊,我刚刚直接用新创的NB2项目加了下插件就跑起来了,刚刚加了下中国象棋也正常 然后这俩的表名是这样的 或许是因为这个问题he0119/nonebot-plugin-datastore@d90cd0c
在启动的时候我好像并没有弹出数据库启动成功的log。我的目录结构是这样的:
Yaobot
Yaobot
plugins
- nonebot_plugin_bottle
bot.py -.env
报错是这样的: 应该就是在说创建表格失败的事。因为我之前没有用过数据库,不过我也不知道该怎么开启。我也百度了错误内容,但是搜索出来结果都不太相关,没办法解决。 不过我用的确实是nonebot2.0.0rc4
那
datastore
的版本有最新吗问题解决了,原来是之前更新的时候没有更新fastapi,以后再也不用pip了,改用poetry
居然还和fastapi
有关系,这真是想不到的问题(,难道是之前nb更新时候把默认的fastapi去掉的原因
作者坐穿牢底归来了( 非常感谢PR(磕磕磕)因为快高三了没多少时间搞这个所以一堆issue没处理(磕磕磕)
问题解决了,原来是之前更新的时候没有更新fastapi,以后再也不用pip了,改用poetry
我更新了fastapi也没有解决这个问题……
居然还和
fastapi
有关系,这真是想不到的问题(,难道是之前nb更新时候把默认的fastapi去掉的原因
是不是这个插件不会自动创建nonebot_plugin_bottle这个table啊(?) 环境是poetry且都为最新版本 启动报错:
04-29 18:39:09 [ERROR] nonebot_plugin_datastore | 数据库初始化后执行的函数出错: (sqlite3.OperationalError) no such table: nonebot_plugin_bottle_bottle
[SQL: SELECT max(nonebot_plugin_bottle_bottle.id) AS max_1
FROM nonebot_plugin_bottle_bottle]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
执行命令报错:
04-29 18:34:43 [ERROR] nonebot | Running Matcher(type='message', module=nonebot_plugin_bottle) failed.
Traceback (most recent call last):
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1963, in _exec_single_context
self.dialect.do_execute(
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 920, in do_execute
cursor.execute(statement, parameters)
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/dialects/sqlite/aiosqlite.py", line 113, in execute
self._adapt_connection._handle_exception(error)
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/dialects/sqlite/aiosqlite.py", line 254, in _handle_exception
raise error
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/dialects/sqlite/aiosqlite.py", line 95, in execute
self.await_(_cursor.execute(operation, parameters))
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 102, in await_only
return current.driver.switch(awaitable) # type: ignore[no-any-return]
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 160, in greenlet_spawn
value = await result
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/aiosqlite/cursor.py", line 37, in execute
await self._execute(self._cursor.execute, sql, parameters)
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/aiosqlite/cursor.py", line 31, in _execute
return await self._conn._execute(fn, *args, **kwargs)
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/aiosqlite/core.py", line 129, in _execute
return await future
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/aiosqlite/core.py", line 102, in run
result = function()
sqlite3.OperationalError: no such table: nonebot_plugin_bottle_bottle
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/bin/nb", line 8, in <module>
sys.exit(main())
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/click/core.py", line 1130, in __call__
return self.main(*args, **kwargs)
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/click/core.py", line 1055, in main
rv = self.invoke(ctx)
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/click/core.py", line 1657, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/click/core.py", line 1404, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/click/core.py", line 760, in invoke
return __callback(*args, **kwargs)
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/nb_cli/commands/main.py", line 30, in run
run_bot(file, app)
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/nb_cli/handlers/deploy.py", line 25, in run_bot
nonebot.run(app=f"{module_name}:{app}")
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/nonebot/__init__.py", line 309, in run
get_driver().run(*args, **kwargs)
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/nonebot/drivers/fastapi.py", line 198, in run
uvicorn.run(
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/uvicorn/main.py", line 578, in run
server.run()
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/uvicorn/server.py", line 61, in run
return asyncio.run(self.serve(sockets=sockets))
File "/usr/local/lib/python3.10/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/nonebot/message.py", line 141, in _check_matcher
await _run_matcher(Matcher, bot, event, state, stack, dependency_cache)
> File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/nonebot/message.py", line 187, in _run_matcher
await matcher.run(bot, event, state, stack, dependency_cache)
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/nonebot/internal/matcher/matcher.py", line 753, in run
await self.simple_run(bot, event, state, stack, dependency_cache)
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/nonebot/internal/matcher/matcher.py", line 728, in simple_run
await handler(
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/nonebot/dependencies/__init__.py", line 108, in __call__
return await cast(Callable[..., Awaitable[R]], self.call)(**values)
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/nonebot_plugin_bottle/__init__.py", line 141, in _
add_index = await bottle_manager.add_bottle(
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/nonebot_plugin_bottle/data_source.py", line 169, in add_bottle
bottles = await session.scalars(
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/ext/asyncio/session.py", line 456, in scalars
result = await self.execute(
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/ext/asyncio/session.py", line 338, in execute
result = await greenlet_spawn(
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 165, in greenlet_spawn
result = context.throw(*sys.exc_info())
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 2231, in execute
return self._execute_internal(
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 2126, in _execute_internal
result: Result[Any] = compile_state_cls.orm_execute_statement(
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/context.py", line 292, in orm_execute_statement
result = conn.execute(
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1413, in execute
return meth(
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", line 483, in _execute_on_connection
return connection._execute_clauseelement(
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1637, in _execute_clauseelement
ret = self._execute_context(
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1841, in _execute_context
return self._exec_single_context(
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1982, in _exec_single_context
self._handle_dbapi_exception(
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2339, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1963, in _exec_single_context
self.dialect.do_execute(
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 920, in do_execute
cursor.execute(statement, parameters)
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/dialects/sqlite/aiosqlite.py", line 113, in execute
self._adapt_connection._handle_exception(error)
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/dialects/sqlite/aiosqlite.py", line 254, in _handle_exception
raise error
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/dialects/sqlite/aiosqlite.py", line 95, in execute
self.await_(_cursor.execute(operation, parameters))
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 102, in await_only
return current.driver.switch(awaitable) # type: ignore[no-any-return]
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 160, in greenlet_spawn
value = await result
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/aiosqlite/cursor.py", line 37, in execute
await self._execute(self._cursor.execute, sql, parameters)
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/aiosqlite/cursor.py", line 31, in _execute
return await self._conn._execute(fn, *args, **kwargs)
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/aiosqlite/core.py", line 129, in _execute
return await future
File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/aiosqlite/core.py", line 102, in run
result = function()
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table: nonebot_plugin_bottle_bottle
[SQL: SELECT nonebot_plugin_bottle_bottle.id, nonebot_plugin_bottle_bottle.user_id, nonebot_plugin_bottle_bottle.group_id, nonebot_plugin_bottle_bottle.user_name, nonebot_plugin_bottle_bottle.group_name, nonebot_plugin_bottle_bottle.content, nonebot_plugin_bottle_bottle.report, nonebot_plugin_bottle_bottle.picked, nonebot_plugin_bottle_bottle.is_del, nonebot_plugin_bottle_bottle.time
FROM nonebot_plugin_bottle_bottle
WHERE nonebot_plugin_bottle_bottle.user_id = ? AND nonebot_plugin_bottle_bottle.group_id = ?]
[parameters: (我的QQ号, 群号)]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
我已经为 @LambdaYH 邀请协作者了,尽管PR,我看懂什么的等一年后的大学再说(倒
我已经为 @LambdaYH 邀请协作者了,尽管PR,我看懂什么的等一年后的大学再说(倒
我还以为todysheep都高三了,一次坐牢这么久(草) 高二就这样内卷……😭😭
居然还和
fastapi
有关系,这真是想不到的问题(,难道是之前nb更新时候把默认的fastapi去掉的原因是不是这个插件不会自动创建nonebot_plugin_bottle这个table啊(?) 环境是poetry且都为最新版本 启动报错:
04-29 18:39:09 [ERROR] nonebot_plugin_datastore | 数据库初始化后执行的函数出错: (sqlite3.OperationalError) no such table: nonebot_plugin_bottle_bottle [SQL: SELECT max(nonebot_plugin_bottle_bottle.id) AS max_1 FROM nonebot_plugin_bottle_bottle] (Background on this error at: https://sqlalche.me/e/20/e3q8)
执行命令报错:
04-29 18:34:43 [ERROR] nonebot | Running Matcher(type='message', module=nonebot_plugin_bottle) failed. Traceback (most recent call last): File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1963, in _exec_single_context self.dialect.do_execute( File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 920, in do_execute cursor.execute(statement, parameters) File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/dialects/sqlite/aiosqlite.py", line 113, in execute self._adapt_connection._handle_exception(error) File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/dialects/sqlite/aiosqlite.py", line 254, in _handle_exception raise error File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/dialects/sqlite/aiosqlite.py", line 95, in execute self.await_(_cursor.execute(operation, parameters)) File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 102, in await_only return current.driver.switch(awaitable) # type: ignore[no-any-return] File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 160, in greenlet_spawn value = await result File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/aiosqlite/cursor.py", line 37, in execute await self._execute(self._cursor.execute, sql, parameters) File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/aiosqlite/cursor.py", line 31, in _execute return await self._conn._execute(fn, *args, **kwargs) File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/aiosqlite/core.py", line 129, in _execute return await future File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/aiosqlite/core.py", line 102, in run result = function() sqlite3.OperationalError: no such table: nonebot_plugin_bottle_bottle The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/bin/nb", line 8, in <module> sys.exit(main()) File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/click/core.py", line 1130, in __call__ return self.main(*args, **kwargs) File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/click/core.py", line 1055, in main rv = self.invoke(ctx) File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/click/core.py", line 1657, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/click/core.py", line 1404, in invoke return ctx.invoke(self.callback, **ctx.params) File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/click/core.py", line 760, in invoke return __callback(*args, **kwargs) File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/nb_cli/commands/main.py", line 30, in run run_bot(file, app) File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/nb_cli/handlers/deploy.py", line 25, in run_bot nonebot.run(app=f"{module_name}:{app}") File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/nonebot/__init__.py", line 309, in run get_driver().run(*args, **kwargs) File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/nonebot/drivers/fastapi.py", line 198, in run uvicorn.run( File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/uvicorn/main.py", line 578, in run server.run() File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/uvicorn/server.py", line 61, in run return asyncio.run(self.serve(sockets=sockets)) File "/usr/local/lib/python3.10/asyncio/runners.py", line 44, in run return loop.run_until_complete(main) File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/nonebot/message.py", line 141, in _check_matcher await _run_matcher(Matcher, bot, event, state, stack, dependency_cache) > File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/nonebot/message.py", line 187, in _run_matcher await matcher.run(bot, event, state, stack, dependency_cache) File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/nonebot/internal/matcher/matcher.py", line 753, in run await self.simple_run(bot, event, state, stack, dependency_cache) File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/nonebot/internal/matcher/matcher.py", line 728, in simple_run await handler( File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/nonebot/dependencies/__init__.py", line 108, in __call__ return await cast(Callable[..., Awaitable[R]], self.call)(**values) File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/nonebot_plugin_bottle/__init__.py", line 141, in _ add_index = await bottle_manager.add_bottle( File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/nonebot_plugin_bottle/data_source.py", line 169, in add_bottle bottles = await session.scalars( File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/ext/asyncio/session.py", line 456, in scalars result = await self.execute( File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/ext/asyncio/session.py", line 338, in execute result = await greenlet_spawn( File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 165, in greenlet_spawn result = context.throw(*sys.exc_info()) File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 2231, in execute return self._execute_internal( File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 2126, in _execute_internal result: Result[Any] = compile_state_cls.orm_execute_statement( File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/orm/context.py", line 292, in orm_execute_statement result = conn.execute( File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1413, in execute return meth( File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", line 483, in _execute_on_connection return connection._execute_clauseelement( File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1637, in _execute_clauseelement ret = self._execute_context( File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1841, in _execute_context return self._exec_single_context( File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1982, in _exec_single_context self._handle_dbapi_exception( File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2339, in _handle_dbapi_exception raise sqlalchemy_exception.with_traceback(exc_info[2]) from e File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1963, in _exec_single_context self.dialect.do_execute( File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 920, in do_execute cursor.execute(statement, parameters) File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/dialects/sqlite/aiosqlite.py", line 113, in execute self._adapt_connection._handle_exception(error) File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/dialects/sqlite/aiosqlite.py", line 254, in _handle_exception raise error File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/dialects/sqlite/aiosqlite.py", line 95, in execute self.await_(_cursor.execute(operation, parameters)) File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 102, in await_only return current.driver.switch(awaitable) # type: ignore[no-any-return] File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 160, in greenlet_spawn value = await result File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/aiosqlite/cursor.py", line 37, in execute await self._execute(self._cursor.execute, sql, parameters) File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/aiosqlite/cursor.py", line 31, in _execute return await self._conn._execute(fn, *args, **kwargs) File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/aiosqlite/core.py", line 129, in _execute return await future File "/root/.cache/pypoetry/virtualenvs/gzbot2-_9hSRCdM-py3.10/lib/python3.10/site-packages/aiosqlite/core.py", line 102, in run result = function() sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table: nonebot_plugin_bottle_bottle [SQL: SELECT nonebot_plugin_bottle_bottle.id, nonebot_plugin_bottle_bottle.user_id, nonebot_plugin_bottle_bottle.group_id, nonebot_plugin_bottle_bottle.user_name, nonebot_plugin_bottle_bottle.group_name, nonebot_plugin_bottle_bottle.content, nonebot_plugin_bottle_bottle.report, nonebot_plugin_bottle_bottle.picked, nonebot_plugin_bottle_bottle.is_del, nonebot_plugin_bottle_bottle.time FROM nonebot_plugin_bottle_bottle WHERE nonebot_plugin_bottle_bottle.user_id = ? AND nonebot_plugin_bottle_bottle.group_id = ?] [parameters: (我的QQ号, 群号)] (Background on this error at: https://sqlalche.me/e/20/e3q8)
会自动创建的,这应该是迁移旧数据时候发生的错误。
旧数据里面[parameters: (我的QQ号, 群号)]
,旧的数据里面似乎有个汉字的qq
号,可以检查下json文件(
会自动创建的,这应该是迁移旧数据时候发生的错误。 旧数据里面[parameters: (我的QQ号, 群号)],旧的数据里面似乎有个汉字的qq号,可以检查下json文件(
那个汉字是我为了隐私自己打码的(惊)原log是正常的数字号
会自动创建的,这应该是迁移旧数据时候发生的错误。 旧数据里面[parameters: (我的QQ号, 群号)],旧的数据里面似乎有个汉字的qq号,可以检查下json文件(
那个汉字是我为了隐私自己打码的(惊)原log是正常的数字号
那应该就是表没自动创建
会自动创建的,这应该是迁移旧数据时候发生的错误。 旧数据里面[parameters: (我的QQ号, 群号)],旧的数据里面似乎有个汉字的qq号,可以检查下json文件(
那个汉字是我为了隐私自己打码的(惊)原log是正常的数字号
确实用pypi装的话不会创建表,但是直接丢文件夹就可以,我去看看怎么修
会自动创建的,这应该是迁移旧数据时候发生的错误。 旧数据里面[parameters: (我的QQ号, 群号)],旧的数据里面似乎有个汉字的qq号,可以检查下json文件(
那个汉字是我为了隐私自己打码的(惊)原log是正常的数字号
因为打包上传pypi时候没把migrations
文件夹带进去
第一次打包带文件夹的项目,不太会,现在没问题了(
嘶,这次是没什么有用信息的报错,,我把这条报错的信息之后的data.db下下来发现数据库table里还是啥也没有,看来还是没迁移成功…… 我确保迁移之前的数据库是没有bottle相关的table的,并且data.json也没问题
嘶,这次是没什么有用信息的报错,,我把这条报错的信息之后的data.db下下来发现数据库table里还是啥也没有,看来还是没迁移成功…… 我确保迁移之前的数据库是没有bottle相关的table的,并且data.json也没问题
感觉是旧格式的评论我没处理好
旧格式的评论是 用户:评论 这种格式的吗
因为没有用过旧的所以这里我是直接参照原代码改的,如果可以的话希望提供一个旧格式的样例我一次性去测了,(
嘶,这次是没什么有用信息的报错,,我把这条报错的信息之后的data.db下下来发现数据库table里还是啥也没有,看来还是没迁移成功…… 我确保迁移之前的数据库是没有bottle相关的table的,并且data.json也没问题
理论上修好了,这次绝对不会再出问题了(这就是迁移脚本赶工的后果吗)
在捡漂流瓶的时候又有sqlite3.OperationalError: database is locked的问题了……😭
不过这个可能是我自己的配置问题?我尝试在datastore插件里找到了解决方法:在.env文件中配置
database_engine_options={"poolclass": StaticPool}
和database_engine_options={"poolclass": "StaticPool"}
两种方法
但是不清楚有没有效果,,这样设置了之后还是会出现报错。https://pastebin.com/uVNZJFJp (里面是在懒得打码了,两周自动过期)
似乎是在chatrecorder写入的时候出现了问题。
但是扔漂流瓶、漂流瓶详情等命令中,均无报错,并且正常发消息也没有报错,只有捡瓶子会有问题
如果不是bottle问题我去别的地方问(╥﹏╥)
在捡漂流瓶的时候又有sqlite3.OperationalError: database is locked的问题了……😭 不过这个可能是我自己的配置问题?我尝试在datastore插件里找到了解决方法:在.env文件中配置
database_engine_options={"poolclass": StaticPool}
和database_engine_options={"poolclass": "StaticPool"}
两种方法 但是不清楚有没有效果,,这样设置了之后还是会出现报错。https://pastebin.com/uVNZJFJp (里面是在懒得打码了,两周自动过期) 似乎是在chatrecorder写入的时候出现了问题。 但是扔漂流瓶、漂流瓶详情等命令中,均无报错,并且正常发消息也没有报错,只有捡瓶子会有问题 如果不是bottle问题我去别的地方问(╥﹏╥)
之前那个迁移问题可以把comment里面的中文:
改成英文:
临时解决
你这个图片 看不到
不过sqlite3.OperationalError: database is locked
应该是orm的问题,我是用的postgresql没有遇到过
另外你的配置是不是写错了
这里是配置
datastore_engine_options
,但是你是database_engine_options
?
嘶,这次是没什么有用信息的报错,,我把这条报错的信息之后的data.db下下来发现数据库table里还是啥也没有,看来还是没迁移成功…… 我确保迁移之前的数据库是没有bottle相关的table的,并且data.json也没问题
感觉是旧格式的评论我没处理好
旧格式的评论是 用户:评论 这种格式的吗
因为没有用过旧的所以这里我是直接参照原代码改的,如果可以的话希望提供一个旧格式的样例我一次性去测了,(
哦哦,当时没看到这条。完整的带评论的json格式是
{
"del": 0,
"user": 用户qq,
"group": 群qq,
"user_name": "名字",
"group_name": "群名",
"text": "内容",
"report": 1,
"reported": [],
"picked": 47,
"comment": [
[
评论人qq,(这里本来就不带引号,是直接的数字,这个中文括号记得删)
"评论人当时的昵称:评论内容"
],
[
同上,
"同上:同上"
]
],
"time": "1980-01-01 00:00:00"
},
这里是配置
datastore_engine_options
,但是你是database_engine_options
?
雾草,我是个杀比,我改一下
因为我测试时候是手动随便打的评论,把冒号打成了英文的,所以...后面就当英文冒号在处理,但实际上是中文冒号(
所以可以暂时把"评论人当时的昵称:评论内容"
改成"评论人当时的昵称:评论内容"
完成迁移,里面冒号有区别
因为我~测试~时候是手动随便打的评论,把冒号打成了英文的,所以...后面就当英文冒号在处理,但实际上是中文冒号(
所以可以暂时把
"评论人当时的昵称:评论内容"
改成"评论人当时的昵称:评论内容"
完成迁移,里面冒号有区别
哦哦,不过我看好像是能正常迁移评论的,我这里捡到过有评论的瓶子是正常的
因为我~测试~时候是手动随便打的评论,把冒号打成了英文的,所以...后面就当英文冒号在处理,但实际上是中文冒号( 所以可以暂时把
"评论人当时的昵称:评论内容"
改成"评论人当时的昵称:评论内容"
完成迁移,里面冒号有区别哦哦,不过我看好像是能正常迁移评论的,我这里捡到过有评论的瓶子是正常的
啊?你之前不是有说迁移后表里面还是空白的吗
因为我~测试~时候是手动随便打的评论,把冒号打成了英文的,所以...后面就当英文冒号在处理,但实际上是中文冒号( 所以可以暂时把
"评论人当时的昵称:评论内容"
改成"评论人当时的昵称:评论内容"
完成迁移,里面冒号有区别哦哦,不过我看好像是能正常迁移评论的,我这里捡到过有评论的瓶子是正常的
啊?你之前不是有说迁移后表里面还是空白的吗
我是更新了当时那个pr的版本(下的zip替换的)然后解决了
不过
sqlite3.OperationalError: database is locked
应该是orm的问题,我是用的postgresql没有遇到过另外你的配置是不是写错了
这里是配置
datastore_engine_options
,但是你是database_engine_options
?
这个是我自己的问题!我折叠了,感谢!终于能用了(呜呜呜)
您好,请问一下扔,捡漂流瓶的时候PCQQ总是显示[该消息只支持手机端查看],但是到了手机上就会变成[该消息类型暂不支持查看],这跟QQ版本有关系吗?
Emmm 为什么要在这个上古pr里发而不是在提issue
nonebot_plugin_bottle_local_storage
配置项,可将图片缓存到data/bottle/cache
目录。改动有亿点多( 如果作者不想吃可以直接关了
我自己偷偷用