SQLAlchemy / Pyramid教程:尝试写入只读数据库

时间:2013-09-15 14:44:36

标签: sqlalchemy runtime-error pyramid readonly

我正在敲打这个。我过去已经成功完成了SQLAlcemy + URL Dispatch教程。无论我做什么,写入sqlite db文件的尝试都会失败,抛出:

OperationalError: (OperationalError) attempt to write a readonly database u'INSERT INTO pages (name, data) VALUES (?, ?)' (u'NewPage', u'A new page is dawning.')

我当前配置的变化是:

  • 我正在运行mod_wsgi下的教程,而不是pserve。
  • 结果与pserve
  • 相同
  • 此系统正在运行python 2.6.5 vs 2.7.5

数据文件初始化正常。所有权与wsgi进程所有者相同。我很困惑。

这是models.py:

from sqlalchemy import (
    Column,
    Index,
    Integer,
    Text,
    )

from sqlalchemy.ext.declarative import declarative_base

from sqlalchemy.orm import (
    scoped_session,
    sessionmaker,
    )

from zope.sqlalchemy import ZopeTransactionExtension

DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
Base = declarative_base()


class Page(Base):
    __tablename__ = 'pages'
    id = Column(Integer, primary_key=True)
    name = Column(Text, unique=True)
    data = Column(Text)

    def __init__(self, name, data):
        self.name = name
        self.data = data

Index('page_index', Page.name, unique=True, mysql_length=255)

教程非常简单。

任何想法都非常感激。

1 个答案:

答案 0 :(得分:1)

即使同一所有者创建了该文件,守护程序进程所有者也无法写入该文件。 WTF?无论如何,在sqlite文件上手动设置666已经清除了这一点。