0

私はこれに頭をぶつけています。過去に 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.')

現在の構成のバリエーションは次のとおりです。

  • pserve ではなく、mod_wsgi でチュートリアルを実行しています。
  • 結果は、pserve での実行と同じです
  • このシステムは python 2.6.5 対 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)

チュートリアルからかなり簡単です。

どんな考えでも大歓迎です。

4

1 に答える 1

1

同じ所有者がファイルを作成したにもかかわらず、デーモン プロセス所有者はファイルに書き込むことができませんでした。なんてこと?とにかく、手動で sqlite ファイルに 666 を設定すると、これが解消されました。

于 2013-09-15T22:20:09.330 に答える