【问题标题】:DataPusher Production Deployment on CKAN 2.8 - OperationalError: (sqlite3.OperationalError) attempt to write a readonly databaseCKAN 2.8 上的 DataPusher 生产部署 - OperationalError: (sqlite3.OperationalError) 尝试写入只读数据库
【发布时间】:2019-12-16 05:15:22
【问题描述】:

我按照官方文档将 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 开发 安装替换它。我相信我已经删除了与开发安装相关的所有内容。

另外值得注意的是/usr/lib/ckan/default 指向/home/ubuntu/ckan/lib/default 的原因莫名其妙。另外我相信这是源安装而不是包安装(因此我需要部署 DataPusher)。

我已尝试调整 /home/ubuntu 中 ckan 目录的文档,但我认为这无关紧要,因为 /usr/lib/ckan/default 仍然指向相同的有效位置。

【问题讨论】:

    标签: ubuntu-18.04 ckan


    【解决方案1】:

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

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

    所以sudo chmod 777 /tmp/job_store.db。我认为 777 这个特定文件并不太担心,但它可能是一个不那么开放的值就足够了(例如 655)。最好将chown 发送给 apache,因为这是唯一应该访问这个 sqlite 文件的东西,更不用说编辑它了。

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

    【讨论】:

      猜你喜欢
      • 2017-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-22
      • 2018-03-07
      • 2021-11-07
      • 2013-07-12
      相关资源
      最近更新 更多