Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

328
Vistas
doctrina que altera la columna uuid en cada migración

Tengo una pregunta si alguien se enfrentó a este tipo de problema. He estado buscando una solución pero no la encontré.

Cada vez que genero una migración con la doctrina, veo en los archivos de migración:

 public function up(Schema $schema): void { $this->addSql('ALTER TABLE verification ALTER id TYPE UUID'); $this->addSql('ALTER TABLE verification ALTER id DROP DEFAULT'); } public function down(Schema $schema): void { $this->addSql('ALTER TABLE verification ALTER verification_id TYPE UUID'); $this->addSql('ALTER TABLE verification ALTER verification_id DROP DEFAULT'); }

estas son mis anotaciones:

 use Ramsey\Uuid\Doctrine\UuidGenerator; /** * @ORM\Id * @ORM\Column(type="uuid", unique=true) * @ORM\GeneratedValue(strategy="CUSTOM") * @ORM\CustomIdGenerator(class=UuidGenerator::class) * * @Groups({"read"}) **/ private UuidInterface $id;

Uso la imagen de postgress: postgres:13-alpine y "doctrine/doctrine-migrations-bundle": "^3.0",

framework "api-plataforma/núcleo": "^2.6",

Probé versiones anteriores de la doctrina-migraciones-paquete junto con postgres: 12

Esos alters se agregan en cada migración. Revisé mi base de datos local, la solté, eliminé los volúmenes de la ventana acoplable. Luego vuelvo a iniciar los contenedores, ejecuto la migración para asegurarme de que obtuve el esquema de base de datos correcto. El problema todavía ocurre. No sé qué causa este problema. Tal vez algunos de ustedes tienen alguna idea de lo que puedo buscar?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Probablemente tenga la versión 1.7.0 de la extensión ramsey/uuid-doctrine en su composer.lock, porque realmente tiene un error al generar el esquema. Que se solucionó hace solo unos días: https://github.com/ramsey/uuid-doctrine/pull/165

Así que intente bajar a 1.6.0:

 composer require ramsey/uuid-doctrine:1.6.0

(o actualizar a la última versión de desarrollo)

Explicación

La razón por la cual la doctrina sigue generando migración para modificar la columna uuid es que la clase de tipo personalizado (que es Ramsey\Uuid\Doctrine\UuidType ) no tiene el indicador requireSQLCommentHint (en 1.7.0):

 /** * {@inheritdoc} * * @param AbstractPlatform $platform * * @return bool */ public function requiresSQLCommentHint(AbstractPlatform $platform) { return true; }

Esta bandera le dice a la doctrina que use un comentario en el campo para determinar en qué tipo personalizado se deben hidratar los valores de este campo. En el caso de Ramsey UuidType, el comentario debería verse así: (DC2Type:uuid)

Como solución rápida, incluso puede simplemente agregar el comentario manualmente (sin actualizar el paquete ramsey/uuid-doctrine):

 COMMENT ON COLUMN verification.id IS '(DC2Type:uuid)'

o vía migración:

 $this->addSql('COMMENT ON COLUMN verification.id IS \'(DC2Type:uuid)\'');
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda