La respuesta más fácil es no intentar hacer esto. En su lugar, haga que sus migraciones de Alembic representen el diseño completo de la base de datos. Luego, cualquier migración que realice se basará en los cambios en la base de datos existente.
Para realizar una migración inicial si ya tiene una base de datos, señale temporalmente una base de datos vacía y ejecute alembic revision --autogenerate -m "base"
. Luego, vuelva a apuntar a la base de datos real y ejecute alembic stamp head
decir que el estado actual de la base de datos está representado por la última migración, sin ejecutarla realmente.
Si no desea hacer eso por alguna razón, puede optar por no usar --autogenerate
y en su lugar genera revisiones vacías que rellenas con las operaciones que deseas. Alembic no impedirá que hagas esto, simplemente es mucho menos conveniente.