Todysheep / nonebot_plugin_bottle

Bottle post plugin in Nonebot
GNU General Public License v3.0
33 stars 12 forks source link

使用nonebot_plugin_datastore重构 #32

Closed LambdaYH closed 1 year ago

LambdaYH commented 1 year ago
  1. 使用nonebot-plugin-datastore重构,能自动迁移旧json数据(迁移部分的代码没有很完善得测试过
  2. 提供nonebot_plugin_bottle_local_storage配置项,可将图片缓存到data/bottle/cache目录。

改动有亿点多( 如果作者不想吃可以直接关了我自己偷偷用

Sevenyine commented 1 year ago

好耶,图片缓存!支持一下!!

longchengguxiao commented 1 year ago

创建数据库失败。载入可以正常,但是好像没办法创建数据库,报错不存在table。是不是需要写数据库链接什么的

LambdaYH commented 1 year ago

创建数据库失败。载入可以正常,但是好像没办法创建数据库,报错不存在table。是不是需要写数据库链接什么的

nonebot-plugin-datastore在没配置数据库时候会默认创建一个sqlite

猜测是你插件的文件夹名不是nonebot_plugin_bottle,需要把仓库内的nonebot_plugin_bottle放进去才行

longchengguxiao commented 1 year ago

创建数据库失败。载入可以正常,但是好像没办法创建数据库,报错不存在table。是不是需要写数据库链接什么的

nonebot-plugin-datastore在没配置数据库时候会默认创建一个sqlite

猜测是你插件的文件夹名不是nonebot_plugin_bottle,需要把仓库内的nonebot_plugin_bottle放进去才行

我是直接下载的zip不是clone也不是pip安装,你是说在这个nonebot_plugin_bottle外面还需要一个nonebot_plugin_bottle吗

LambdaYH commented 1 year ago

创建数据库失败。载入可以正常,但是好像没办法创建数据库,报错不存在table。是不是需要写数据库链接什么的

nonebot-plugin-datastore在没配置数据库时候会默认创建一个sqlite 猜测是你插件的文件夹名不是nonebot_plugin_bottle,需要把仓库内的nonebot_plugin_bottle放进去才行

我是直接下载的zip不是clone也不是pip安装,你是说在这个nonebot_plugin_bottle外面还需要一个nonebot_plugin_bottle吗

我刚刚去重新装了个NoneBot2确实发现了迁移时候的一个问题,不过和你这个不是同一个,下图是我使用插件时候的路径。 image

nonebot_plugin_bottle这个文件夹如果直接下载下来可能是叫nonebot_plugin_bottle-main,然后需要把箭头指向的文件夹放进插件路径

image

longchengguxiao commented 1 year ago

创建数据库失败。载入可以正常,但是好像没办法创建数据库,报错不存在table。是不是需要写数据库链接什么的

nonebot-plugin-datastore在没配置数据库时候会默认创建一个sqlite 猜测是你插件的文件夹名不是nonebot_plugin_bottle,需要把仓库内的nonebot_plugin_bottle放进去才行

我是直接下载的zip不是clone也不是pip安装,你是说在这个nonebot_plugin_bottle外面还需要一个nonebot_plugin_bottle吗

我刚刚去重新装了个NoneBot2确实发现了迁移时候的一个问题,不过和你这个不是同一个,下图是我使用插件时候的路径。 image

nonebot_plugin_bottle这个文件夹如果直接下载下来可能是叫nonebot_plugin_bottle-main,然后需要把箭头指向的文件夹放进插件路径

image

我也是这样做的,但是却不行。我在用另一个插件(中国象棋)也出现了同样的问题。是.env需要配置一些什么嘛。等下午我把详细报错截图看看

LambdaYH commented 1 year ago

创建数据库失败。载入可以正常,但是好像没办法创建数据库,报错不存在table。是不是需要写数据库链接什么的

nonebot-plugin-datastore在没配置数据库时候会默认创建一个sqlite 猜测是你插件的文件夹名不是nonebot_plugin_bottle,需要把仓库内的nonebot_plugin_bottle放进去才行

我是直接下载的zip不是clone也不是pip安装,你是说在这个nonebot_plugin_bottle外面还需要一个nonebot_plugin_bottle吗

我刚刚去重新装了个NoneBot2确实发现了迁移时候的一个问题,不过和你这个不是同一个,下图是我使用插件时候的路径。 image nonebot_plugin_bottle这个文件夹如果直接下载下来可能是叫nonebot_plugin_bottle-main,然后需要把箭头指向的文件夹放进插件路径 image

我也是这样做的,但是却不行。我在用另一个插件(中国象棋)也出现了同样的问题。是.env需要配置一些什么嘛。等下午我把详细报错截图看看

不用配置什么啊,我刚刚直接用新创的NB2项目加了下插件就跑起来了,刚刚加了下中国象棋也正常 image image

然后这俩的表名是这样的 image

或许是因为这个问题https://github.com/he0119/nonebot-plugin-datastore/commit/d90cd0cdc86c7340f2db834a64c1e51d57ee4899

longchengguxiao commented 1 year ago

创建数据库失败。载入可以正常,但是好像没办法创建数据库,报错不存在table。是不是需要写数据库链接什么的

nonebot-plugin-datastore在没配置数据库时候会默认创建一个sqlite 猜测是你插件的文件夹名不是nonebot_plugin_bottle,需要把仓库内的nonebot_plugin_bottle放进去才行

我是直接下载的zip不是clone也不是pip安装,你是说在这个nonebot_plugin_bottle外面还需要一个nonebot_plugin_bottle吗

我刚刚去重新装了个NoneBot2确实发现了迁移时候的一个问题,不过和你这个不是同一个,下图是我使用插件时候的路径。 image nonebot_plugin_bottle这个文件夹如果直接下载下来可能是叫nonebot_plugin_bottle-main,然后需要把箭头指向的文件夹放进插件路径 image

我也是这样做的,但是却不行。我在用另一个插件(中国象棋)也出现了同样的问题。是.env需要配置一些什么嘛。等下午我把详细报错截图看看

不用配置什么啊,我刚刚直接用新创的NB2项目加了下插件就跑起来了,刚刚加了下中国象棋也正常 image image

然后这俩的表名是这样的 image

或许是因为这个问题https://github.com/he0119/nonebot-plugin-datastore/commit/d90cd0cdc86c7340f2db834a64c1e51d57ee4899

Remotepc-image-20230406140207_edit_139076358900484.png

在启动的时候我好像并没有弹出数据库启动成功的log。我的目录结构是这样的:

报错是这样的: Remotepc-image-20230406141137.png

应该就是在说创建表格失败的事。因为我之前没有用过数据库,不过我也不知道该怎么开启。我也百度了错误内容,但是搜索出来结果都不太相关,没办法解决。

不过我用的确实是nonebot2.0.0rc4

LambdaYH commented 1 year ago

创建数据库失败。载入可以正常,但是好像没办法创建数据库,报错不存在table。是不是需要写数据库链接什么的

nonebot-plugin-datastore在没配置数据库时候会默认创建一个sqlite 猜测是你插件的文件夹名不是nonebot_plugin_bottle,需要把仓库内的nonebot_plugin_bottle放进去才行

我是直接下载的zip不是clone也不是pip安装,你是说在这个nonebot_plugin_bottle外面还需要一个nonebot_plugin_bottle吗

我刚刚去重新装了个NoneBot2确实发现了迁移时候的一个问题,不过和你这个不是同一个,下图是我使用插件时候的路径。 image nonebot_plugin_bottle这个文件夹如果直接下载下来可能是叫nonebot_plugin_bottle-main,然后需要把箭头指向的文件夹放进插件路径 image

我也是这样做的,但是却不行。我在用另一个插件(中国象棋)也出现了同样的问题。是.env需要配置一些什么嘛。等下午我把详细报错截图看看

不用配置什么啊,我刚刚直接用新创的NB2项目加了下插件就跑起来了,刚刚加了下中国象棋也正常 image image 然后这俩的表名是这样的 image 或许是因为这个问题he0119/nonebot-plugin-datastore@d90cd0c

Remotepc-image-20230406140207_edit_139076358900484.png

在启动的时候我好像并没有弹出数据库启动成功的log。我的目录结构是这样的:

  • Yaobot

    • Yaobot

    • plugins

      • nonebot_plugin_bottle
    • bot.py -.env

报错是这样的: Remotepc-image-20230406141137.png

应该就是在说创建表格失败的事。因为我之前没有用过数据库,不过我也不知道该怎么开启。我也百度了错误内容,但是搜索出来结果都不太相关,没办法解决。

不过我用的确实是nonebot2.0.0rc4

datastore的版本有最新吗,可以看一下data.db里面的表创建成啥样子了,windows默认在C:\Users<username>\AppData\Local\nonebot2\data.db,使用 SQLiteSpy_1.9.1.zip 能看

longchengguxiao commented 1 year ago

创建数据库失败。载入可以正常,但是好像没办法创建数据库,报错不存在table。是不是需要写数据库链接什么的

nonebot-plugin-datastore在没配置数据库时候会默认创建一个sqlite 猜测是你插件的文件夹名不是nonebot_plugin_bottle,需要把仓库内的nonebot_plugin_bottle放进去才行

我是直接下载的zip不是clone也不是pip安装,你是说在这个nonebot_plugin_bottle外面还需要一个nonebot_plugin_bottle吗

我刚刚去重新装了个NoneBot2确实发现了迁移时候的一个问题,不过和你这个不是同一个,下图是我使用插件时候的路径。 image nonebot_plugin_bottle这个文件夹如果直接下载下来可能是叫nonebot_plugin_bottle-main,然后需要把箭头指向的文件夹放进插件路径 image

我也是这样做的,但是却不行。我在用另一个插件(中国象棋)也出现了同样的问题。是.env需要配置一些什么嘛。等下午我把详细报错截图看看

不用配置什么啊,我刚刚直接用新创的NB2项目加了下插件就跑起来了,刚刚加了下中国象棋也正常 image image 然后这俩的表名是这样的 image 或许是因为这个问题he0119/nonebot-plugin-datastore@d90cd0c

Remotepc-image-20230406140207_edit_139076358900484.png

在启动的时候我好像并没有弹出数据库启动成功的log。我的目录结构是这样的:

  • Yaobot

    • Yaobot

    • plugins

      • nonebot_plugin_bottle
    • bot.py -.env

报错是这样的: Remotepc-image-20230406141137.png

应该就是在说创建表格失败的事。因为我之前没有用过数据库,不过我也不知道该怎么开启。我也百度了错误内容,但是搜索出来结果都不太相关,没办法解决。

不过我用的确实是nonebot2.0.0rc4

datastore的版本有最新吗

问题解决了,原来是之前更新的时候没有更新fastapi,以后再也不用pip了,改用poetry

LambdaYH commented 1 year ago

创建数据库失败。载入可以正常,但是好像没办法创建数据库,报错不存在table。是不是需要写数据库链接什么的

nonebot-plugin-datastore在没配置数据库时候会默认创建一个sqlite 猜测是你插件的文件夹名不是nonebot_plugin_bottle,需要把仓库内的nonebot_plugin_bottle放进去才行

我是直接下载的zip不是clone也不是pip安装,你是说在这个nonebot_plugin_bottle外面还需要一个nonebot_plugin_bottle吗

我刚刚去重新装了个NoneBot2确实发现了迁移时候的一个问题,不过和你这个不是同一个,下图是我使用插件时候的路径。 image nonebot_plugin_bottle这个文件夹如果直接下载下来可能是叫nonebot_plugin_bottle-main,然后需要把箭头指向的文件夹放进插件路径 image

我也是这样做的,但是却不行。我在用另一个插件(中国象棋)也出现了同样的问题。是.env需要配置一些什么嘛。等下午我把详细报错截图看看

不用配置什么啊,我刚刚直接用新创的NB2项目加了下插件就跑起来了,刚刚加了下中国象棋也正常 image image 然后这俩的表名是这样的 image 或许是因为这个问题he0119/nonebot-plugin-datastore@d90cd0c

Remotepc-image-20230406140207_edit_139076358900484.png 在启动的时候我好像并没有弹出数据库启动成功的log。我的目录结构是这样的:

  • Yaobot

    • Yaobot

    • plugins

      • nonebot_plugin_bottle
    • bot.py -.env

报错是这样的: Remotepc-image-20230406141137.png 应该就是在说创建表格失败的事。因为我之前没有用过数据库,不过我也不知道该怎么开启。我也百度了错误内容,但是搜索出来结果都不太相关,没办法解决。 不过我用的确实是nonebot2.0.0rc4

datastore的版本有最新吗

问题解决了,原来是之前更新的时候没有更新fastapi,以后再也不用pip了,改用poetry

居然还和fastapi有关系,这真是想不到的问题(,难道是之前nb更新时候把默认的fastapi去掉的原因

Todysheep commented 1 year ago

作者坐穿牢底归来了( 非常感谢PR(磕磕磕)因为快高三了没多少时间搞这个所以一堆issue没处理(磕磕磕)

Sevenyine commented 1 year ago

问题解决了,原来是之前更新的时候没有更新fastapi,以后再也不用pip了,改用poetry

我更新了fastapi也没有解决这个问题……

Sevenyine commented 1 year ago

居然还和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)
Todysheep commented 1 year ago

我已经为 @LambdaYH 邀请协作者了,尽管PR,我看懂什么的等一年后的大学再说(倒

Sevenyine commented 1 year ago

我已经为 @LambdaYH 邀请协作者了,尽管PR,我看懂什么的等一年后的大学再说(倒

我还以为todysheep都高三了,一次坐牢这么久(草) 高二就这样内卷……😭😭

LambdaYH commented 1 year ago

居然还和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文件(

Sevenyine commented 1 year ago

会自动创建的,这应该是迁移旧数据时候发生的错误。 旧数据里面[parameters: (我的QQ号, 群号)],旧的数据里面似乎有个汉字的qq号,可以检查下json文件(

那个汉字是我为了隐私自己打码的(惊)原log是正常的数字号

LambdaYH commented 1 year ago

会自动创建的,这应该是迁移旧数据时候发生的错误。 旧数据里面[parameters: (我的QQ号, 群号)],旧的数据里面似乎有个汉字的qq号,可以检查下json文件(

那个汉字是我为了隐私自己打码的(惊)原log是正常的数字号

那应该就是表没自动创建

会自动创建的,这应该是迁移旧数据时候发生的错误。 旧数据里面[parameters: (我的QQ号, 群号)],旧的数据里面似乎有个汉字的qq号,可以检查下json文件(

那个汉字是我为了隐私自己打码的(惊)原log是正常的数字号

确实用pypi装的话不会创建表,但是直接丢文件夹就可以,我去看看怎么修

LambdaYH commented 1 year ago

会自动创建的,这应该是迁移旧数据时候发生的错误。 旧数据里面[parameters: (我的QQ号, 群号)],旧的数据里面似乎有个汉字的qq号,可以检查下json文件(

那个汉字是我为了隐私自己打码的(惊)原log是正常的数字号

image 因为打包上传pypi时候没把migrations文件夹带进去

Todysheep commented 1 year ago

第一次打包带文件夹的项目,不太会,现在没问题了(

Sevenyine commented 1 year ago

好像还是有点其他问题(悲)https://github.com/Todysheep/nonebot_plugin_bottle/issues/37

Sevenyine commented 1 year ago

嘶,这次是没什么有用信息的报错,,我把这条报错的信息之后的data.db下下来发现数据库table里还是啥也没有,看来还是没迁移成功…… 我确保迁移之前的数据库是没有bottle相关的table的,并且data.json也没问题 image

LambdaYH commented 1 year ago

嘶,这次是没什么有用信息的报错,,我把这条报错的信息之后的data.db下下来发现数据库table里还是啥也没有,看来还是没迁移成功…… 我确保迁移之前的数据库是没有bottle相关的table的,并且data.json也没问题 image

感觉是旧格式的评论我没处理好

旧格式的评论是 用户:评论 这种格式的吗

因为没有用过旧的所以这里我是直接参照原代码改的,如果可以的话希望提供一个旧格式的样例我一次性去测了,(

LambdaYH commented 1 year ago

嘶,这次是没什么有用信息的报错,,我把这条报错的信息之后的data.db下下来发现数据库table里还是啥也没有,看来还是没迁移成功…… 我确保迁移之前的数据库是没有bottle相关的table的,并且data.json也没问题 image

理论上修好了,这次绝对不会再出问题了(这就是迁移脚本赶工的后果吗)

Sevenyine commented 1 year ago

在捡漂流瓶的时候又有sqlite3.OperationalError: database is locked的问题了……😭 不过这个可能是我自己的配置问题?我尝试在datastore插件里找到了解决方法:在.env文件中配置 database_engine_options={"poolclass": StaticPool}database_engine_options={"poolclass": "StaticPool"}两种方法 但是不清楚有没有效果,,这样设置了之后还是会出现报错。https://pastebin.com/uVNZJFJp (里面是在懒得打码了,两周自动过期) 似乎是在chatrecorder写入的时候出现了问题。 但是扔漂流瓶、漂流瓶详情等命令中,均无报错,并且正常发消息也没有报错,只有捡瓶子会有问题 如果不是bottle问题我去别的地方问(╥﹏╥)

LambdaYH commented 1 year ago

在捡漂流瓶的时候又有sqlite3.OperationalError: database is locked的问题了……😭 不过这个可能是我自己的配置问题?我尝试在datastore插件里找到了解决方法:在.env文件中配置 database_engine_options={"poolclass": StaticPool}database_engine_options={"poolclass": "StaticPool"}两种方法 但是不清楚有没有效果,,这样设置了之后还是会出现报错。https://pastebin.com/uVNZJFJp (里面是在懒得打码了,两周自动过期) 似乎是在chatrecorder写入的时候出现了问题。 但是扔漂流瓶、漂流瓶详情等命令中,均无报错,并且正常发消息也没有报错,只有捡瓶子会有问题 如果不是bottle问题我去别的地方问(╥﹏╥)

之前那个迁移问题可以把comment里面的中文改成英文:临时解决

你这个图片 image 看不到

不过sqlite3.OperationalError: database is locked应该是orm的问题,我是用的postgresql没有遇到过

另外你的配置是不是写错了 image

这里是配置 datastore_engine_options,但是你是database_engine_options

Sevenyine commented 1 year ago

嘶,这次是没什么有用信息的报错,,我把这条报错的信息之后的data.db下下来发现数据库table里还是啥也没有,看来还是没迁移成功…… 我确保迁移之前的数据库是没有bottle相关的table的,并且data.json也没问题 image

感觉是旧格式的评论我没处理好

旧格式的评论是 用户:评论 这种格式的吗

因为没有用过旧的所以这里我是直接参照原代码改的,如果可以的话希望提供一个旧格式的样例我一次性去测了,(

哦哦,当时没看到这条。完整的带评论的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"
},
Sevenyine commented 1 year ago

这里是配置 datastore_engine_options,但是你是database_engine_options

雾草,我是个杀比,我改一下

LambdaYH commented 1 year ago

因为我测试时候是手动随便打的评论,把冒号打成了英文的,所以...后面就当英文冒号在处理,但实际上是中文冒号(

所以可以暂时把"评论人当时的昵称:评论内容"改成"评论人当时的昵称:评论内容"完成迁移,里面冒号有区别

Sevenyine commented 1 year ago

因为我~测试~时候是手动随便打的评论,把冒号打成了英文的,所以...后面就当英文冒号在处理,但实际上是中文冒号(

所以可以暂时把"评论人当时的昵称:评论内容"改成"评论人当时的昵称:评论内容"完成迁移,里面冒号有区别

哦哦,不过我看好像是能正常迁移评论的,我这里捡到过有评论的瓶子是正常的

LambdaYH commented 1 year ago

因为我~测试~时候是手动随便打的评论,把冒号打成了英文的,所以...后面就当英文冒号在处理,但实际上是中文冒号( 所以可以暂时把"评论人当时的昵称:评论内容"改成"评论人当时的昵称:评论内容"完成迁移,里面冒号有区别

哦哦,不过我看好像是能正常迁移评论的,我这里捡到过有评论的瓶子是正常的

啊?你之前不是有说迁移后表里面还是空白的吗

Sevenyine commented 1 year ago

因为我~测试~时候是手动随便打的评论,把冒号打成了英文的,所以...后面就当英文冒号在处理,但实际上是中文冒号( 所以可以暂时把"评论人当时的昵称:评论内容"改成"评论人当时的昵称:评论内容"完成迁移,里面冒号有区别

哦哦,不过我看好像是能正常迁移评论的,我这里捡到过有评论的瓶子是正常的

啊?你之前不是有说迁移后表里面还是空白的吗

我是更新了当时那个pr的版本(下的zip替换的)然后解决了

Sevenyine commented 1 year ago

不过sqlite3.OperationalError: database is locked应该是orm的问题,我是用的postgresql没有遇到过

另外你的配置是不是写错了 image

这里是配置 datastore_engine_options,但是你是database_engine_options

这个是我自己的问题!我折叠了,感谢!终于能用了(呜呜呜)

LambdaYH commented 1 year ago

您好,请问一下扔,捡漂流瓶的时候PCQQ总是显示[该消息只支持手机端查看],但是到了手机上就会变成[该消息类型暂不支持查看],这跟QQ版本有关系吗? image 9952b5c45bc44188a61f3adf51b0943d

Emmm 为什么要在这个上古pr里发而不是在提issue