J'ai des difficultés à faire fonctionner des tests fonctionnels dans Symfony3 avec Doctrine. J'ai le code organisé en deux paquets avec lesquels un EntityManager doit avoir accès avec des entités stockées dans deux bases de données MySQL différentes. Pour ce faire, toutes les entités ont une annotation « schéma » dans leur définition, comme ceci:Symfony/Doctrine: Entité "schéma" annotation non dépendante de l'environnement?
/**
* @ORM/Table(name="tablename", schema="schema")
* @Entity(...)
*/
Sans ce paramètre, il a été mon expérience, que le schéma Doctrine: outil de création ne peut pas créer correctement les entités dans les bonnes bases de données. Cependant, il semble que l'annotation du schéma ne soit pas considérée comme dépendante de l'environnement.
Ainsi, lorsque je veux exécuter des tests fonctionnels qui ont besoin de charger des appareils, l'ORMPurger essaie de purger schema.tablename, où il devrait utiliser la table/schéma "test_schema".
Est-il possible de conserver l'annotation du schéma mais de la rendre dépendante de l'environnement, de sorte que lorsque l'environnement est "test", un schéma différent est utilisé?
EDIT:
Il semble que l'utilisation de l'annotation « schéma » pour les entités est assez terrible tout autour lorsque vous utilisez différents environnements Symfony. Au moins lorsqu'il est utilisé en conjonction avec MySQl, au moins je pense que c'est la raison, puisque MySQL ne supporte pas réellement les schémas. Chaque commande Symfony ou Doctrine J'ai essayé de prendre l'annotation du schéma littéralement, quel que soit le paramètre --env.