noneplugin / nonebot-plugin-chatrecorder

适用于 Nonebot2 的聊天记录插件
MIT License
54 stars 8 forks source link

更新数据库期间退出导致数据库错误 #11

Closed Sevenyine closed 1 year ago

Sevenyine commented 1 year ago

如题,在我更新数据库的时候它爆了一堆错,RD Client也连不上了()吓得我赶紧重启了服务器 结果再次启动就报错了,猜测是数据库没有完全迁移,请问有什么办法吗(泪 没有备份原来的data.db( 删掉了data.db文件他倒是好了,这算数据库炸了吗😭 报错内容:(删除了迁移配置和不删都是这个报错)

sqlite3.OperationalError: table _alembic_tmp_nonebot_plugin_chatrecorder_messagere already exists

sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) table _alembic_tmp_nonebot_plugin_chatrecorder_messagere already exists
[SQL:
CREATE TABLE _alembic_tmp_nonebot_plugin_chatrecorder_messagere (
        id INTEGER NOT NULL,
        platform VARCHAR NOT NULL,
        time DATETIME NOT NULL,
        type VARCHAR NOT NULL,
        detail_type VARCHAR NOT NULL,
        message_id VARCHAR NOT NULL,
        message VARCHAR NOT NULL,
        plain_text VARCHAR NOT NULL,
        user_id VARCHAR NOT NULL,
        group_id VARCHAR,
        PRIMARY KEY (id)
)

]
Sevenyine commented 1 year ago

这是data.db的数据结构,能否手动修改数据库使其更新呢😂 image

Sevenyine commented 1 year ago

我自己删除了_alembic_tmp…那个表再覆盖就直接恢复了()

F1Justin commented 1 year ago

如题,在我更新数据库的时候它爆了一堆错,RD Client也连不上了()吓得我赶紧重启了服务器 结果再次启动就报错了,猜测是数据库没有完全迁移,请问有什么办法吗(泪 没有备份原来的data.db( 删掉了data.db文件他倒是好了,这算数据库炸了吗😭 报错内容:(删除了迁移配置和不删都是这个报错)

sqlite3.OperationalError: table _alembic_tmp_nonebot_plugin_chatrecorder_messagere already exists

sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) table _alembic_tmp_nonebot_plugin_chatrecorder_messagere already exists
[SQL:
CREATE TABLE _alembic_tmp_nonebot_plugin_chatrecorder_messagere (
        id INTEGER NOT NULL,
        platform VARCHAR NOT NULL,
        time DATETIME NOT NULL,
        type VARCHAR NOT NULL,
        detail_type VARCHAR NOT NULL,
        message_id VARCHAR NOT NULL,
        message VARCHAR NOT NULL,
        plain_text VARCHAR NOT NULL,
        user_id VARCHAR NOT NULL,
        group_id VARCHAR,
        PRIMARY KEY (id)
)

]

我也遇到了类似的问题,可是我找不到data.db的路径( 能告诉一下data.db的路径在哪吗

he0119 commented 1 year ago

我也遇到了类似的问题,可是我找不到data.db的路径( 能告诉一下data.db的路径在哪吗

可通过 nb datastore dir 获取 data.db 的存储路径。数据库文件在数据目录下。

MeetWq commented 1 year ago

是迁移脚本执行顺序的问题,目前已修复 674b5266395d8c1d47fb566fe96278292ab7157e

已经出错可以手动删除数据库中的 _alembic_tmp_nonebot_plugin_chatrecorder_messagere 表,并设置好 chatrecorder_record_migration_bot_id,重新运行