migrations/Version20261015090000.php line 1

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace DoctrineMigrations;
  4. use Doctrine\DBAL\Schema\Schema;
  5. use Doctrine\Migrations\AbstractMigration;
  6. /**
  7.  * form_lead_data.collection_index: posición del elemento dentro de su apartado repetible.
  8.  *
  9.  * Los elementos de una colección (p.ej. varios hijos) se guardan como filas con el mismo
  10.  * field y type; lo único que los distinguía era el ordinal que el alta añade a la etiqueta.
  11.  * Al agrupar por field_type para quedarse con el valor vigente (id mayor), todos menos el
  12.  * último se trataban como versiones anteriores y desaparecían del admin, la exportación y
  13.  * los emails.
  14.  *
  15.  * NULL = campo no repetible, que es lo que tienen todas las filas existentes. Las filas de
  16.  * colección ya guardadas se rellenan con app:backfill-collection-index.
  17.  *
  18.  * Sin índice: ninguna consulta filtra por esta columna, las lecturas recorren en memoria
  19.  * los datos de cada registro.
  20.  */
  21. final class Version20261015090000 extends AbstractMigration
  22. {
  23.     public function getDescription(): string
  24.     {
  25.         return 'form_lead_data.collection_index: posición del elemento en los apartados repetibles';
  26.     }
  27.     public function up(Schema $schema): void
  28.     {
  29.         $this->addSql('ALTER TABLE form_lead_data ADD collection_index SMALLINT DEFAULT NULL');
  30.     }
  31.     public function down(Schema $schema): void
  32.     {
  33.         $this->addSql('ALTER TABLE form_lead_data DROP collection_index');
  34.     }
  35. }