私の場合、宣言的な方法でテーブルにマップされたクラスがあり、このクラスからテーブルのプロパティ、列、名前、関係を「発見」したいと思います。
engine = create_engine('sqlite:///' + databasePath, echo=True)
# setting up root class for declarative declaration
Base = declarative_base(bind=engine)
class Ship(Base):
__tablename__ = 'ships'
id = Column(Integer, primary_key=True)
name = Column(String(255))
def __init__(self, name):
self.name = name
def __repr__(self):
return "<Ship('%s')>" % (self.name)
したがって、私の目標は、「Ship」クラスから、別のコードからテーブルの列とそのプロパティを取得することです。インストルメンテーションを使用して処理できると思いますが、SQLAlchemy APIによって提供される方法はありますか?
テーブル オブジェクトから取得できる必要な情報:
Ship.__table__.columns
列情報を提供しますShip.__table__.foreign_keys
外部キーを一覧表示しますShip.__table__.constraints
、Ship.__table__.indexes
あなたが役に立つと思うかもしれない他のプロパティです