2015-06-10 3 views
5

के साथ ऐप चलाने पर SQLAlchemy एक्सटेंशन पंजीकृत नहीं है मेरे पास एक ऐसा एप्लिकेशन है जो विकास में काम करता है, लेकिन जब मैं इसे गनिकोर्न के साथ चलाने की कोशिश करता हूं तो यह एक त्रुटि देता है कि "sqlalchemy एक्सटेंशन पंजीकृत नहीं था"। मैंने जो पढ़ा है, उससे ऐसा लगता है कि मुझे कहीं भी app.app_context() पर कॉल करने की आवश्यकता है, लेकिन मुझे यकीन नहीं है कि कहां है। मैं इस त्रुटि को कैसे ठीक करूं?GunQorn

# 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() 

उत्तर

6

केवल जब आपसे अपने ऐप्लिकेशन में शुरूif __name__ == '__main__': ब्लॉक हिट है, जहां आप अपने ऐप के साथ अपना डेटाबेस पंजीकृत कर रहे हैं।

आपको उस ब्लॉक के बाहर उस पंक्ति को db.init_app(app) स्थानांतरित करने की आवश्यकता होगी।

+0

यह आसान था, धन्यवाद! – duffn

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^