Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

332
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!