CKAN 2.8上的DataPusher生产部署-OperationalError:(sqlite3.OperationalError)尝试写入只读数据库

问题描述 投票:0回答:1

[我遵循官方文档将DataPusher部署到生产环境(https://docs.ckan.org/projects/datapusher/en/latest/deployment.html),但正在获取OperationalError: (sqlite3.OperationalError) attempt to write a readonly database [SQL: u'INSERT INTO jobs...

我认识到此错误与SQLAlchemy有关,即apache2 www-user用户无权写入wsgi DataPusher应用用来跟踪作业的SQLite数据库。我对wsgi应用程序的经验有限,因此我不确定如何从哪里开始调试...

我将正式文档放在T后面,但是值得注意的是,我正在用同一台服务器上正常运行的DataPusher development安装代替它。我相信我已经删除了与开发安装相关的所有内容。

[还值得注意的是,出于无法解释的原因,/usr/lib/ckan/default指向/home/ubuntu/ckan/lib/default。我也相信这是源安装,而不是软件包安装(因此,我需要部署DataPusher)。

我已经尝试修改/ home / ubuntu中ckan目录的文档,但是我认为这并不重要,因为/ usr / lib / ckan / default仍指向相同的有效位置。

ubuntu-18.04 ckan
1个回答
0
投票

您需要chmod 777(或类似内容).db文件中指定的sqlite(/etc/ckan/datapusher_settings.py)文件。

例如,datapusher_settings.py文件的SQLALCHEMY_DATABASE_URI行默认情况下指向/tmp/job_store.db

所以sudo chmod 777 /tmp/job_store.db。我认为777这个特殊文件不是什么大问题,但开放程度较低的值可能就足够了(例如655)。最好使chown成为可能,因为那是访问此sqlite文件的唯一方法,更不用说对其进行编辑了。

没有在非标准目录中安装ckan的任何问题(在这种情况下,因为/ usr / lib / ckan / default仍定向到ckan目录)。

© www.soinside.com 2019 - 2024. All rights reserved.