2015-06-10 12 views
5

Mam aplikację, która działa w fazie rozwoju, ale kiedy próbuję ją uruchomić z Gunicorn, pojawia się błąd, że "rozszerzenie sqlalchemy nie zostało zarejestrowane". Z tego, co przeczytałem, wynika, że ​​muszę gdzieś zadzwonić pod numer app.app_context(), ale nie jestem pewien, gdzie. Jak naprawić ten błąd?Rozszerzenie SQLAlchemy nie jest zarejestrowane podczas uruchamiania aplikacji z Gunicornem

# run in development, works 
python server.py 

# try to run with gunicorn, fails 
gunicorn --bind localhost:8000 server:app 

AssertionError: The sqlalchemy extension was not registered to the current application. Please make sure to call init_app() first. 

server.py:

from flask.ext.security import Security 
from database import db 
from application import app 
from models import Studio, user_datastore 

security = Security(app, user_datastore) 

if __name__ == '__main__': 
    # with app.app_context(): ?? 
    db.init_app(app) 
    app.run() 

application.py:

from flask import Flask 

app = Flask(__name__) 
app.config.from_object('config.ProductionConfig') 

database.py:

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

Odpowiedz

6

Dopiero po uruchomieniu aplikacji z python sever.py jest hitem bloku if __name__ == '__main__':, w którym rejestrujesz swoją bazę danych za pomocą aplikacji.

Musisz przenieść tę linię, db.init_app(app), poza ten blok.

+0

To było łatwe, dzięki! – duffn

Powiązane problemy