A database schema defines the structure of a relational database: its tables, fields, data types, relationships, and structural constraints. In application development, the schema must stay aligned with the code or ORM that accesses it. section 23.4.2 section 23.9
Schemas commonly change as an application evolves. Adding fields or changing types manually can make versions difficult to track and roll back. Migration tools record each change as code, apply revisions in sequence, and provide a reverse operation for downgrading. section 23.4.2
Creating and reversing an address table
An Alembic revision can create an address table with an integer primary key and required string columns for address, city, and state. Its downgrade removes the table. Running alembic upgrade head produces address alongside the existing people table; alembic downgrade -1 removes it again.











































