vendredi 25 septembre 2015

flask-sqlalchemy "no such table" under mod_wsgi

For some reason flask-sqlalchemy seems to have problems resolving the sqlite tables when running under apache + mod_wsgi.

simplified example:

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)
    ...

Basically my app works fine when I run it via python myapp.py

But when I run this under apache + mod_wsgi, I get the following error when I run something like 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)]

Is there anything I need to change to get it working under apache+mod_wsgi?

Aucun commentaire:

Enregistrer un commentaire