Si hago bin/console doctrine:schema:update --force, el resultado es:

Actualizando el esquema de la base de datos ...
¡El esquema de la base de datos se actualizó correctamente! Se ejecutó la consulta "1"

Y esto se hace cada vez que ejecuto el comando update.

Entonces, con bin/console doctrine:schema:validate veo que:

[Mapeo] OK: los archivos de mapeo son correctos.
[Base de datos] FALLO: el esquema de la base de datos no está sincronizado con el archivo de asignación actual.

La consulta que Doctrine quiere ejecutar es siempre la misma (bin/console doctrine:schema:update --dump-sql):

ALTER TABLE coo_users CHANGE id id VARCHAR(255) NOT NULL;

¿Qué está pasando? Parece que Doctrine quiere hacer cualquier modificación, ya que quiere cambiar el campo id nuevamente al campo id, cada vez, en una modificación infinita.

EL MAPEO

/**
 * @ORM\Id
 * @ORM\Column(type="string", unique=true)
 * @ORM\GeneratedValue(strategy="IDENTITY")
 */
protected $id;
3
Aerendir 6 dic. 2016 a las 21:42

1 respuesta

La mejor respuesta

¡Error encontrado!

El problema es que el tipo de columna se establece en string mientras que tiene que ser integer.

Se configuró en string ya que usé un generador personalizado que requería un campo string. Cuando eliminé el generador personalizado, no volví a cambiar el tipo de campo a integer, por lo que Doctrine quería editar el campo cada vez.

1
Aerendir 6 dic. 2016 a las 21:50