6
votes

Supprimer les anciennes différences de migrations

Comment puis-je supprimer les différences d'anciennes migrations? Lorsque vous faites Doctrine: Générez-Migrations-Diff Je n'ai aucun problème, mais lorsque vous faites la doctrine : migrer Je reçois des problèmes. Il semble que la doctrine essaie de migrer de vieilles choses qui ne "comptent" plus ...

merci


0 commentaires

3 Réponses :


5
votes

Soit supprimer la classe de migration ou ajouter la table de version de génération (Impossible de vous rappeler le nom exact) et définissez la valeur à la migration que vous souhaitez commencer.


4 commentaires

Où puis-je trouver cette classe ou cette table?


Une fois que vous avez exécuté une migration, il y aura une nouvelle table dans cette base de données. Je pense que cela a appelé Migration_version. Il devrait avoir une colonne avec une ligne. Si vous modifiez simplement la valeur de la ligne à la migration avant celle que vous souhaitez exécuter.


Lorsque vous générez des migrations de doctrine, il crée des fichiers de classe qui étendent doctrine_migration. Si vous supprimez simplement les migrations que vous ne voulez pas exécuter, vous ne courez pas lorsque vous appelez Doctrine: migrer. Si vous utilisez Symfony, ces cours de migration sont en lib / migration.


Je viens de supprimer tous les fichiers PHP que je pouvais trouver à l'intérieur de la migration / doctrine. Travaillé comme un rêve :)



8
votes

juste pour compléter la réponse sélectionnée (à partir de la documentation):

Ajout d'une version: P>

./doctrine migrations:version YYYYMMDDHHMMSS --delete


0 commentaires

1
votes

Dans Symfony 5, les migrations se trouvent dans le dossier src / migration .

J'ai trouvé que localement j'avais supprimé la mauvaise migration, mais sur la production des anciens fichiers de migrations où il est toujours là même après un push git . .

J'ai également effacé la table (ou la migration) dans la base de données dans la table Migration_version


0 commentaires