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