Aprende a resolver esta excepción en Doctrine cuando intente actualizar el esquema de su base de datos.

Si está trabajando en algún proyecto PHP basado en Symfony o que usa el ORM de Doctrine para compilar y no puede crear las tablas en MySQL usando el siguiente comando:

php bin/console doctrine:schema:update --force

Probablemente te estés volviendo loco en este momento porque no sabes cómo resolverlo, ¿no es así? Bueno, en este artículo le proporcionaremos algunos consejos que pueden ayudarlo a superar este problema.

Causa posible # 1

En la mayoría de los casos y probablemente también para su proyecto, este error se debe a que tiene 2 entidades y archivos orm para la misma tabla en su proyecto y probablemente estén ubicados en diferentes paquetes, por ejemplo:

/AppBundle/Entity/Table.php
/AppBundle/Resources/config/doctrine/Table.orm.yml

# En otro lugar de otro paquete de su aplicación

/OtherBundle/Entity/Table.php
/OtherBundle/Resources/config/doctrine/Table.orm.yml

Tenga en cuenta que, de acuerdo con la forma en que trabaja, no puede usar el mapeo con el archivo orm.yml sino con anotaciones en sus entidades. Entonces, todo lo que necesita es rastrear la entidad duplicada y eliminarla (puede cambiar el nombre) y finalmente intentar actualizar su esquema con el comando nuevamente. Obviamente, debido a que doctrine no creará la misma tabla dos veces, se lanzará esta excepción. 

En este caso, la razón es porque el uso de ingeniería inversa con doctrina, lo cual obviamente no es incorrecto, pero en este caso es crear archivos que probablemente no sabías que se crearon. La identificación de este problema es aún más difícil si no usa la versión de control en sus proyectos.

Posible causa # 2

Si ha verificado que, de hecho, su tabla no se está creando dos veces porque hay 2 entidades o archivos orm de una tabla, deberá verificar la relación Uno a muchos, Unidireccional con tabla de unión como anotaciones en su proyecto porque Probablemente pueda modificar manualmente uno de esos archivos y lo hizo como puede ver mal.

Como este problema depende totalmente de la forma en que trabaje con su proyecto, no podemos ayudarlo con él, por lo que deberá leer y analizar cuidadosamente la estructura de su base de datos y reescribir las relaciones correctamente. Si aún tiene el problema, le recomendamos que cree una pregunta en Stack Overflow y proporcione toda la información de sus entidades, archivos orm y tal vez alguien pueda ayudarlo con esto.

Que te diviertas ❤️!


Ingeniero de Software Senior en EPAM Anywhere. Interesado en la programación desde los 14 años, Carlos es un programador autodidacta, fundador y autor de la mayoría de los artículos de Our Code World.

Conviertete en un programador más sociable

Patrocinadores