La réponse la plus simple est de ne pas essayer de le faire. Au lieu de cela, faites en sorte que vos migrations Alembic représentent la disposition complète de la base de données. Ensuite, toutes les migrations que vous effectuerez seront basées sur les modifications apportées à la base de données existante.
Pour effectuer une migration de départ si vous avez déjà une base de données, pointez temporairement sur une base de données vide et exécutez alembic revision --autogenerate -m "base"
. Ensuite, pointez sur la base de données réelle et exécutez alembic stamp head
pour dire que l'état actuel de la base de données est représenté par la dernière migration, sans l'exécuter réellement.
Si vous ne voulez pas le faire pour une raison quelconque, vous pouvez choisir de ne pas utiliser --autogenerate
et générer à la place des révisions vides que vous remplissez avec les opérations souhaitées. Alambic ne vous empêchera pas de le faire, c'est juste beaucoup moins pratique.