SQLAlchemy与Oracle的不稳定行为

时间:2015-06-25 08:55:43

标签: python oracle flask sqlalchemy

我一直在努力解决我遇到的SQLAlchemy问题,并将其缩小到这个简单的脚本:

#!/usr/bin/env python

from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = "oracle+cx_oracle://<user>:<password>@<sid>"

db = SQLAlchemy(app)

class Instance(db.Model):
    id = db.Column(db.Integer, primary_key=True)

with app.app_context():
    instance = db.session.query(Instance).filter(Instance.id == 105250).first()
    print(instance)

id为105250的实例确实存在于数据库中,但我得到的结果非常令人惊讶:

% x.py
<__main__.Instance object at 0x7f65461cdef0>
% x.py
<__main__.Instance object at 0x7f0c09aa2ef0>
% x.py
None
% x.py
<__main__.Instance object at 0x7fd1c7a9eef0>
% x.py
None

任何人都可以解释如何预防和解决这种不稳定的行为吗?

1 个答案:

答案 0 :(得分:0)

我找到了根本原因。如果有人遇到同样的问题,请在此处发布。

问题是由不稳定的cx_Oracle 5.2.0驱动程序引起的。将其降级为5.1.3解决了这个问题。