Python 我可以将会话绑定到SQLAlchemy中的特定模式吗?
我使用具有多个(类似)模式的postgres数据库。在我的代码库中,我在单独的Python 我可以将会话绑定到SQLAlchemy中的特定模式吗?,python,python-3.x,postgresql,sqlalchemy,Python,Python 3.x,Postgresql,Sqlalchemy,我使用具有多个(类似)模式的postgres数据库。在我的代码库中,我在单独的schema_xy.py文件中反映不同的模式。我还有一个base.py文件,其中包含一个带有抽象表定义的基类,用于存在于多个模式中的表 我的base.py文件: from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base engine = create_engine('postgresql+p
schema_xy.py
文件中反映不同的模式。我还有一个base.py
文件,其中包含一个带有抽象表定义的基类,用于存在于多个模式中的表
我的base.py
文件:
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
engine = create_engine('postgresql+psycopg2://dbuser@dbhost:5432/dbname')
Base = declarative_base(bind=engine)
class User(Base):
__abstract__ = True
id = ..
以及一个示例Schema1.py
文件,它从base继承User
表,但也有一个特定于模式的表S1Table
:
from sqlalchemy import declarative_base
from .base import User
engine = create_engine('postgresql+psycopg2://dbuser@dbhost:5432/dbname')
Schema1Base = declarative_base(bind=engine, metadata=MetaData(schema='Schema1'))
class User(Schema1Base, User):
__tablename__ = "user"
class S1Table(Schema1Base):
__tablename__ = "s1table"
foo = ...
我的问题是,如何最好地实例化用于查询和上载数据的会话,这些数据“绑定”到特定的模式,即如何确保从正确的模式查询/操作用户
表
我找到了这篇博文
它为Base
定义了loadSession
函数,如下所示:
def loadSession():
metadata = Base.metadata
Session = sessionmaker(bind=engine)
session = Session()
return session
但我不明白未使用的元数据在这里到底应该做什么