J'ai un échantillon TableauVérifiez si les mises à jour fonctionnent correctement avant la mise à niveau schéma de table à l'aide Alambic
class a(Base):
__tablename__ = 'a'
id = Column(Integer,primary_key=True)
username = Column(VARCHAR(255))
Maintenant, je fait quelques changements à mes autres tables et a également ajouté contrainte unique à la colonne « nom d'utilisateur » dans le tableau ci-dessus .
class a(Base):
__tablename__ = 'a'
id = Column(Integer,primary_key=True)
username = Column(VARCHAR(255),unique=True) # unique key added.
Je cours commande python run.py db migrate
et il détecte toutes les modifications. Pas de problème. Je passe maintenant python run.py db upgrade
. Cela entraîne toutes les modifications de schéma dans la base de données mais échoue à la contrainte unique de la table mentionnée ci-dessus, car cette table contient déjà des données répétées. Maintenant, j'ai besoin de revenir sur tous les changements de db pour revenir à ma version précédente (je ne peux pas comprendre comment le faire). Existe-t-il un moyen de tester si toutes les mises à niveau s'exécutent correctement avant de valider les modifications de schéma dans la base de données? Sinon, aidez-moi s'il vous plaît à rétablir tous les changements de DB. Alembic traite les changements dans une migration comme un changement atomique.
https://stackoverflow.com/questions/17894240/how-to-clean-up-incomplete-alembic-run –
Malheureusement, mysql db permet des transactions incomplètes. –