私たちは当初アプリケーションを構築していましたが、SQLAlchemy ORMを使用していましたが、時間が経つにつれて、複雑さとオーバーヘッドが益々不満を募らせており、クエリを実行可能にするために明示的にいくつかの初期のテストでは、コアがそれらのニーズに合っているように見えるので、スイッチを作ってみたいと思います。SQLAlchemy ORMからコアへの移行
私たちの現在のモデルのすべては、例えば、宣言を使用して定義されています。
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String(100), nullable=False)
autocomplete_crosses = relationship(u'Parent')
class Parent(Base):
__tablename__ = 'parents'
id = Column(Integer, primary_key=True)
user = Column(ForeignKey('users.id'), nullable=False)
name = Column(String(100), nullable=False)
users = relationship(User')
はさておき毎回__table__
呼び出すする必要から、宣言でこれらを使用しての簡単な方法があります。
s = select([User.__table__.c.name, Parent.__table__.c.name])\
.select_from(User.__table__.join(Parent.__table__))
は、私が直接私のテーブル名にアクセスし、ちょうどこのクリーナーを作るためにそれらを使用することができます。ここでは、私は現在、冗長で醜い感じている、やってんですよ?あなたはすべてのテーブルに対して自動的にそれを行うしたい場合は、すべてのクラスを定義した後
さて、あなたが 'user = User .__ table__'をやめさせることは何もありません。 – univerio
すべてのテーブルに対して自動的に行う方法はありますか? – Eli