Reflecting Metadata
SQLAlchemy can act as an ORM, which allows you to treat records of a database table as instantiable records. To leverage this functionality, you will need to reflect the underlying metadata in one of the following ways.
Model Data Using a Mapping Class
Declare a mapping class for the table you wish to model in the ORM. This is done using "sqlalchemy.ext.declarative.declarative_base". A known table in the data model is modeled either partially or completely as in the below example:
from sqlalchemy.ext.declarative import declarative_base Base = declarative_base() class AdAccounts(Base): __tablename__ = "AdAccounts" Id = Column(String, primary_key=True) AccountId = Column(String) Name = Column(String)
Automatically Reflect Metadata
Rather than mapping tables manually, SQLAlchemy can discover the metadata for one or more tables automatically. This can be accomplished across the entire data model with automap_base:
from sqlalchemy import MetaData from sqlalchemy.ext.automap import automap_base meta = Metadata() base = automap_base(metadata=meta) base.prepare() AdAccounts = base.classes.AdAccounts
Alternatevely, a single table can be reflected with an inspector. When reflecting this way, providing a list of specific columns to map is optional:
from sqlalchemy import MetaData, Table from sqlalchemy.engine.reflection import inspector meta = Metadata() insp = Inspector.from_engine(engine) AdAccounts_table = Table("AdAccounts", meta) insp.reflecttable(AdAccounts_table, ["Id","AccountId","Name"])