找回密码
 立即注册

QQ登录

只需一步,快速开始

tomjay1234
金牌服务用户   /  发表于:2024-11-10 16:29  /   查看:170  /  回复:7
10金币
本帖最后由 tomjay1234 于 2024-11-10 16:34 编辑

麻烦大佬看一下

应用发布失败,报错

数据库是外联库Postgresql 16.4.2
内建库只有流程

SQLite Error 8: 'attempt to write a readonly database For more information on this error code see









附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

SQLite Error 8 'attempt to write a readonly database' 错误通常由以下几个原因引起: 数据库设置为只读模式:数据库可能被设置为只读模式,导致无法进行写入操作。可以通过使用SQLite的PRAGMA语句查询和修改数据库的读写模式。如果返回的结果是 'readonly',则说明数据库设置为只读模式,需要将其更改为读写模式。 数据库文件的权限不足:如果数据库文件的权限设置不正确,即使具有写入权限,也无法向数据库插入数据。需 ...

7 个回复

正序浏览
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2024-11-11 15:19:51
8#
不客气哈,感谢您对活字格的支持。
后面有问题,欢迎继续发新帖交流
回复 使用道具 举报
tomjay1234
金牌服务用户   /  发表于:2024-11-11 15:06:14
7#
Joe.xu 发表于 2024-11-11 10:26
如果是内置库的话,因为内置库是一个文件,当一个程序访问这个文件时对于其他程序来说这个文件就是只读的, ...

看情况应该不像是占用,如果被占用的话,那我应该也替换不掉文件吧。在网上搜到一个解释,可能是与hikaripool有关系,不过我专业有限看不咋懂。

目前就这样吧,能解决问题也不管处理方法优雅不优雅的吧

软件系统,偶尔的问题,不复现也很难分析清楚。

谢谢大佬。
回复 使用道具 举报
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2024-11-11 10:26:33
6#
如果是内置库的话,因为内置库是一个文件,当一个程序访问这个文件时对于其他程序来说这个文件就是只读的,可能当时有别的程序占用了此文件,一般杀毒软件居多
回复 使用道具 举报
tomjay1234
金牌服务用户   /  发表于:2024-11-11 09:58:45
5#
tangke888 发表于 2024-11-10 21:46
SQLite Error 8 'attempt to write a readonly database' 错误通常由以下几个原因引起:

数据库设置为只 ...

感谢大佬回复
回复 使用道具 举报
tomjay1234
金牌服务用户   /  发表于:2024-11-11 09:56:03
4#
Joe.xu 发表于 2024-11-11 09:33
您好,正如楼上所说,这个报错大概率是数据库权限不足引起的,
楼主在服务器上配置的Postgresql 16.4.2 的 ...

错误是突发的,此前并未进行过任何数据库操作。

经查,错误是由活字格内置库SQLite引发,与外联库无关,但日志中未查到具体原因。修改SQLite的readonly设置后问题仍然存在。

怀疑是SQLite本身有问题
目前问题已解决,方法简单粗暴,在虚拟机新安装活字格后,从中拷贝了两个空库文件覆盖到服务器,不再报错。
回复 使用道具 举报
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2024-11-11 09:33:26
3#
您好,正如楼上所说,这个报错大概率是数据库权限不足引起的,
楼主在服务器上配置的Postgresql 16.4.2 的用户是不是有管理员权限,能创建和修改表结构及操作数据呢
回复 使用道具 举报
最佳答案
最佳答案
tangke888Wyn认证
高级会员   /  发表于:2024-11-10 16:29:29
来自 2#
SQLite Error 8 'attempt to write a readonly database' 错误通常由以下几个原因引起:

数据库设置为只读模式:数据库可能被设置为只读模式,导致无法进行写入操作。可以通过使用SQLite的PRAGMA语句查询和修改数据库的读写模式。如果返回的结果是 'readonly',则说明数据库设置为只读模式,需要将其更改为读写模式。

数据库文件的权限不足:如果数据库文件的权限设置不正确,即使具有写入权限,也无法向数据库插入数据。需要检查数据库文件的权限,确保当前用户具有足够的权限来写入数据库文件。

数据库文件所在位置不正确:如果数据库文件的路径设置不正确,程序可能无法找到数据库文件,从而导致无法写入数据库。需要检查代码中指定的路径是否正确,并确保数据库文件存在于该路径下。

评分

参与人数 1金币 +5 收起 理由
Joe.xu + 5 很给力!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部