40 lines
989 B
PHP
40 lines
989 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace DoctrineMigrations;
|
|
|
|
use Doctrine\DBAL\Schema\Schema;
|
|
use Doctrine\Migrations\AbstractMigration;
|
|
|
|
final class Version20260210123000 extends AbstractMigration
|
|
{
|
|
public function getDescription(): string
|
|
{
|
|
return 'Backfill employee display_order per site';
|
|
}
|
|
|
|
public function up(Schema $schema): void
|
|
{
|
|
// Initialise display_order par site selon le tri nom/prénom/id.
|
|
$this->addSql('
|
|
UPDATE employees e
|
|
SET display_order = ranked.rn
|
|
FROM (
|
|
SELECT id,
|
|
ROW_NUMBER() OVER (
|
|
PARTITION BY site_id
|
|
ORDER BY last_name ASC, first_name ASC, id ASC
|
|
) AS rn
|
|
FROM employees
|
|
) ranked
|
|
WHERE ranked.id = e.id
|
|
');
|
|
}
|
|
|
|
public function down(Schema $schema): void
|
|
{
|
|
// Pas de rollback pertinent.
|
|
}
|
|
}
|