【发布时间】:2016-04-22 01:16:24
【问题描述】:
我在我的应用程序中使用了 flask-sqlalchemy。数据库是postgresql 9.3。 我有简单的数据库、模型和视图初始化:
from config import *
from flask import Flask, request, render_template
from flask.ext.sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://%s:%s@%s/%s' % (DB_USER, DB_PASSWORD, HOST, DB_NAME)
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
login = db.Column(db.String(255), unique=True, index=True, nullable=False)
db.create_all()
db.session.commit()
@app.route('/users/')
def users():
users = User.query.all()
return '1'
一切正常。但是当数据库服务器重新启动时(sudo service postgresql restart),在第一次向/users/ 请求时,我获得了sqlalchemy.exc.OperationalError:
OperationalError: (psycopg2.OperationalError) terminating connection due to administrator command
SSL connection has been closed unexpectedly
[SQL: ....
有没有办法在视图内更新连接,或者以另一种方式设置flask-sqlalchemy以自动更新连接?
更新。
我最终使用了清晰的 SQLAlchemy,为我急需的每个视图声明引擎、元数据和 db_session。
这不是问题的解决方案,只是一个“黑客”。
所以问题是开放的。我敢肯定,找到解决方案会很好:)
【问题讨论】:
标签: postgresql flask sqlalchemy flask-sqlalchemy psycopg2