Start here. This is the direct spoken answer to practice first.
Overview
Treats Alembic autogeneration as a candidate schema diff that still needs semantic and operational review.
Alembic autogenerate compares database schema with SQLAlchemy metadata and produces a candidate migration. It can detect many table, column, nullable, index, constraint, and foreign-key changes, but it does not understand every intent. A rename may appear as a drop plus an add, which would destroy data if accepted blindly. I read and edit every generated upgrade and downgrade before it is applied.