【发布时间】:2020-04-13 02:01:21
【问题描述】:
我必须创建一个 Flask 应用程序,该应用程序需要从放置在同一个 Oracle 实例上的多个几乎相同的模式中读取数据。我只能通过“read_only”用户连接到这个数据库。 通过这样做,我正在使用蓝图。
project
|-warehouse01
| -__init__.py
| - view.py
|-warehouse02
| -__init__.py
| - view.py
|-warehouse999
| -__init__.py
| - view.py
-model.py
run.py
config.py
当然所有模式的模型都是相同的
class Product(db.Model):
#__table_args__ = {'schema': 'warehouse01'}
__tablename__ = 'PRODUCTS'
prod_no = db.Column(db.Integer, primary_key=True, nullable=False)
prod_name = db.Column(db.String(35), nullable=False)
quantity = db.Column(db.Integer, nullable=False)
...
steps = db.relationship('Shipment', backref='shipments', lazy='dynamic')
class Shipment(db.Model):
__tablename__ = 'SHIPMENTS'
#__table_args__ = {'schema': 'warehouse01'}
shipm_no = db.Column(db.Integer, , primary_key=True, nullable=False)
prod_no = db.Column(db.Integer, db.ForeignKey('PRODUCTS.prod_no'), nullable=False)
customer_id= db.Column(db.Integer, db.ForeignKey('CUSTOMERS.customer_id') nullable=False)
...
问题是通过不同的模式连接 (READ_ONLY) 我必须在 table_args 中声明一个模式 我想对所有模式使用相同的模型。显然我不想为所有蓝图创建单独的模型。 是否可以对所有模式使用相同的模型或在蓝图中重新定义模式名称?
【问题讨论】:
标签: python oracle flask sqlalchemy schema