| Total Complexity | 3 |
| Total Lines | 33 |
| Duplicated Lines | 0 % |
| Changes | 0 | ||
| 1 | <?php |
||
| 10 | final class Version20250610104115_LssMode extends AbstractMigration |
||
| 11 | { |
||
| 12 | public function getDescription(): string |
||
| 13 | { |
||
| 14 | return 'Transfer lss mode to lss system data.'; |
||
| 15 | } |
||
| 16 | |||
| 17 | public function up(Schema $schema): void |
||
| 18 | { |
||
| 19 | $this->addSql(<<<'SQL' |
||
| 20 | UPDATE stu_spacecraft_system ss |
||
| 21 | SET data = '{"sensorRange":' || (ss.data::json->>'sensorRange') || ',"mode":' || (select sp.lss_mode from stu_spacecraft sp where sp.id = ss.spacecraft_id) || '}' |
||
| 22 | WHERE system_type = 8 |
||
| 23 | SQL); |
||
| 24 | $this->addSql(<<<'SQL' |
||
| 25 | ALTER TABLE stu_spacecraft DROP lss_mode |
||
| 26 | SQL); |
||
| 27 | } |
||
| 28 | |||
| 29 | public function down(Schema $schema): void |
||
| 30 | { |
||
| 31 | $this->addSql(<<<'SQL' |
||
| 32 | ALTER TABLE stu_spacecraft ADD lss_mode SMALLINT DEFAULT NULL |
||
| 33 | SQL); |
||
| 34 | $this->addSql(<<<'SQL' |
||
| 35 | UPDATE stu_spacecraft sp |
||
| 36 | SET lss_mode = (SELECT (ss.data::json->>'mode')::smallint FROM stu_spacecraft_system ss WHERE ss.system_type = 8 AND ss.spacecraft_id = sp.id) |
||
| 37 | WHERE EXISTS (SELECT * FROM stu_spacecraft_system ss WHERE ss.system_type = 8 AND ss.spacecraft_id = sp.id) |
||
| 38 | SQL); |
||
| 39 | $this->addSql(<<<'SQL' |
||
| 40 | UPDATE stu_spacecraft SET lss_mode = 1 WHERE lss_mode IS NULL |
||
| 41 | SQL); |
||
| 42 | $this->addSql(<<<'SQL' |
||
| 43 | ALTER TABLE stu_spacecraft ALTER lss_mode SET NOT NULL |
||
| 47 |