Schema Definition Language
This section references SQLAlchemy schema metadata, a comprehensive system of describing and inspecting
database schemas.
The core of SQLAlchemy’s query and object mapping operations are supported by
database metadata, which is comprised of Python objects that describe tables
and other schema-level objects. These objects are at the core of three major
types of operations - issuing CREATE and DROP statements (known as DDL),
constructing SQL queries, and expressing information about structures that
already exist within the database.
Database metadata can be expressed by explicitly naming the various components
and their properties, using constructs such as
Table, Column,
ForeignKey and
Sequence, all of which are imported from the
sqlalchemy.schema package. It can also be generated by SQLAlchemy using a
process called reflection, which means you start with a single object such
as Table, assign it a name, and then instruct
SQLAlchemy to load all the additional information related to that name from a
particular engine source.
A key feature of SQLAlchemy’s database metadata constructs is that they are
designed to be used in a declarative style which closely resembles that of
real DDL. They are therefore most intuitive to those who have some background
in creating real schema generation scripts.