mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 18:44:08 +00:00
Merge branch '228-fix-export-activity-from-v1' into 'master'
Fix export for people created before 'createdAt' column introduction Closes #228 See merge request Chill-Projet/chill-bundles!634
This commit is contained in:
commit
33d187f329
6
.changes/unreleased/Fixed-20231207-232129.yaml
Normal file
6
.changes/unreleased/Fixed-20231207-232129.yaml
Normal file
@ -0,0 +1,6 @@
|
||||
kind: Fixed
|
||||
body: Fix export of activity for people created before the introduction of the createdAt
|
||||
column on person (during v1)
|
||||
time: 2023-12-07T23:21:29.976822313+01:00
|
||||
custom:
|
||||
Issue: "228"
|
@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/*
|
||||
* Chill is a software for social workers
|
||||
*
|
||||
* For the full copyright and license information, please view
|
||||
* the LICENSE file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Chill\Migrations\Person;
|
||||
|
||||
use Doctrine\DBAL\Schema\Schema;
|
||||
use Doctrine\Migrations\AbstractMigration;
|
||||
|
||||
/**
|
||||
* Fix lines in chill_person_person_center_history for people created before the introduction of the createdAt column.
|
||||
*
|
||||
* This class represents a migration for fixing lines in the 'chill_person_person_center_history' table.
|
||||
*
|
||||
* It updates the 'startdate' column for people created before the introduction
|
||||
* of the 'createdAt' column, and set it at the first activity date. This migration is irreversible.
|
||||
*/
|
||||
final class Version20231207221700 extends AbstractMigration
|
||||
{
|
||||
public function getDescription(): string
|
||||
{
|
||||
return 'Fix lines in chill_person_person_center_history for people created before the introduction of the createdAt column';
|
||||
}
|
||||
|
||||
public function up(Schema $schema): void
|
||||
{
|
||||
$this->addSql('WITH first_history_line AS (SELECT *
|
||||
FROM (SELECT id,
|
||||
person_id,
|
||||
startdate,
|
||||
rank() OVER (PARTITION BY person_id ORDER BY startdate ASC, id ASC) AS r
|
||||
FROM chill_person_person_center_history) AS sk
|
||||
WHERE sk.r = 1),
|
||||
first_activity AS (SELECT *
|
||||
FROM (SELECT id, date, person_id, rank() OVER (PARTITION BY person_id ORDER BY date ASC, id ASC) AS r
|
||||
FROM activity
|
||||
WHERE person_id IS NOT NULL) sq
|
||||
WHERE sq.r = 1)
|
||||
UPDATE chill_person_person_center_history cppch SET startdate=first_activity.date
|
||||
FROM first_history_line, first_activity
|
||||
WHERE
|
||||
first_history_line.id = cppch.id
|
||||
AND first_activity.person_id = cppch.person_id
|
||||
AND first_activity.date < first_history_line.startDate');
|
||||
}
|
||||
|
||||
public function down(Schema $schema): void
|
||||
{
|
||||
$this->throwIrreversibleMigrationException();
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user