flask_sqlalchemy在mod_wsgi下“没有这样的表”

碎纸

由于某些原因,flask-sqlalchemy在以Apache + mod_wsgi运行时似乎无法解决sqlite表。

简化示例:

from models import db, User

app = Flask(__name__)
app.config['DEBUG'] = True
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/zop.sqlite3'
db.init_app(app)

models.py:

from flask.ext.sqlalchemy import SQLAlchemy
db = SQLAlchemy()

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), unique=True)
    email = db.Column(db.String(120), unique=True)
    ...

通过运行我的应用程序基本上可以正常工作 python myapp.py

但是当我在apache + mod_wsgi下运行此命令时,运行类似以下命令时出现以下错误User.query.filter_by(name=username).first()

OperationalError: (sqlite3.OperationalError) no such table: user [SQL: u'SELECT user.id AS user_id, user.name AS user_name, user.email AS user_email \\nFROM user \\nWHERE user.name = ?\\n LIMIT ? OFFSET ?'] [parameters: ('foo', 1, 0)]

我需要更改使其在apache + mod_wsgi下工作吗?

碎纸

好的-知道了。万一有人被这咬伤,就把答案留在这里。事实证明,在较新的基于redhat的系统(特别是使用systemd的系统)上的Apache使用私有的/ tmp。

这在 /usr/lib/systemd/system/httpd.service

[Service]
PrivateTmp=true

因此,我的数据库位于/tmp/systemd-private-M4Xj0e/tmp/zop.sqlite3而不是中/tmp/zop.sqlite3而且,私有tmp目录中的该DB从未正确初始化-运行db.create_all()只是创建/tmp/zop.sqlite3而不是创建/tmp/systemd-private-M4Xj0e/tmp/zop.sqlite3Apache之所以抛出错误是因为它找不到数据库。

使用备用的非tmp数据库位置(例如/var/www/zop.sqlite3)或设置PrivateTmp=false可解决此问题

此处更多信息:http : //blog.oddbit.com/2012/11/05/fedora-private-tmp/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

OperationalError在Flask中没有这样的表与SQLAlchemy

来自分类Dev

Flask SQL没有这样的表

来自分类Dev

flask / sqlalchemy-OperationalError:(sqlite3.OperationalError)没有这样的表

来自分类Dev

有没有办法让mod_wsgi / Flask和mod_dav共存?

来自分类Dev

Django Admin没有这样的表

来自分类Dev

Android sqlitedatabase没有这样的表

来自分类Dev

没有这样的表:SQLiteOpenHelper Android

来自分类Dev

没有这样的表Sugar ORM

来自分类Dev

没有这样的表:@DatabseView

来自分类Dev

SQLite没有这样的表异常

来自分类Dev

SQLite(1)没有这样的表

来自分类Dev

没有这样的表:SQLiteOpenHelper Android

来自分类Dev

android sqlite没有这样的表

来自分类Dev

SQLiteLog错误:“没有这样的表”

来自分类Dev

SQlite错误:“没有这样的表”

来自分类Dev

Django Admin没有这样的表

来自分类Dev

没有这样的表(Android SQLite)

来自分类Dev

peewee“没有这样的表”错误

来自分类Dev

ModuleNotFoundError:没有名为“ flask_sqlalchemy”的模块

来自分类Dev

mod_wsgi:ImportError:没有名为“ encodings”的模块

来自分类Dev

在 URL 中没有额外组件的情况下配置 Django/Apache2/mod_wsgi 的问题

来自分类Dev

无法安装flask_sqlalchemy->导入错误:没有名为flask_sqlalchemy的模块

来自分类Dev

Flask init-db没有这样的命令

来自分类Dev

Django-没有这样的表异常

来自分类Dev

Python sqlite3.OperationalError:没有这样的表:

来自分类Dev

Laravel测试,没有这样的表,sqlite

来自分类Dev

django.db.utils.DatabaseError:没有这样的表

来自分类Dev

没有这样的表:Entry_table

来自分类Dev

内容提供商没有这样的表