|
60 | 60 | ); |
61 | 61 | $messenger->addWarning($message); |
62 | 62 | } |
| 63 | + |
| 64 | +if (version_compare($oldVersion, '3.4.2-beta', '<')) { |
| 65 | + $sqls = <<<'SQL' |
| 66 | +UPDATE value |
| 67 | +SET type = "geography" |
| 68 | +WHERE type = "geometry:geography"; |
| 69 | +UPDATE value |
| 70 | +SET type = "geometry" |
| 71 | +WHERE type = "geometry:geometry"; |
| 72 | +UPDATE value |
| 73 | +SET type = "geography:coordinates" |
| 74 | +WHERE type = "geometry:geography:coordinates"; |
| 75 | +UPDATE value |
| 76 | +SET type = "geometry:coordinates" |
| 77 | +WHERE type = "geometry:geometry:coordinates"; |
| 78 | +UPDATE value |
| 79 | +SET type = "geometry:position" |
| 80 | +WHERE type = "geometry:geometry:position"; |
| 81 | +
|
| 82 | +ALTER TABLE `data_type_geography` CHANGE `value` `value` GEOMETRY NOT NULL COMMENT '(DC2Type:geography)'; |
| 83 | +ALTER TABLE `data_type_geometry` CHANGE `value` `value` GEOMETRY NOT NULL COMMENT '(DC2Type:geometry)'; |
| 84 | +SQL; |
| 85 | + foreach (array_filter(explode(";\n", $sqls)) as $sql) { |
| 86 | + $connection->executeStatement($sql); |
| 87 | + } |
| 88 | + |
| 89 | + // \DataTypeGeometry\DataType\Geography::DEFAULT_SRID |
| 90 | + $defaultSrid = (int) $settings->get('datatypegeometry_locate_srid', 4326); |
| 91 | + $sql = <<<SQL |
| 92 | +UPDATE `data_type_geography` |
| 93 | +SET `value` = ST_SRID(`value`, $defaultSrid) |
| 94 | +WHERE ST_SRID(`value`) != $defaultSrid; |
| 95 | +SQL; |
| 96 | + $connection->executeStatement($sql); |
| 97 | + |
| 98 | + $message = new Message( |
| 99 | + 'Datatype names were simplified: "geometry", "geography", "geography:coordinates".' // @translate |
| 100 | + ); |
| 101 | + $messenger->addWarning($message); |
| 102 | + $message = new Message( |
| 103 | + 'Two new datatypes have been added to manage geometries: x/y coordinates ("geometry:coordinates") and position from top left ("geometry:position").' // @translate |
| 104 | + ); |
| 105 | + $messenger->addSuccess($message); |
| 106 | +} |
0 commit comments