Migrating to postgis.
This commit is contained in:
parent
5f70116da2
commit
16888b9fdb
@ -112,11 +112,11 @@ sub create ($self) {
|
|||||||
description => $description,
|
description => $description,
|
||||||
name => $name,
|
name => $name,
|
||||||
type => $type,
|
type => $type,
|
||||||
coordinate_1 => $coordinate_1,
|
geometry => \['ST_MakePoint(?, ?)', $coordinate_1, $coordinate_2],
|
||||||
coordinate_2 => $coordinate_2
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
$node->insert;
|
$node->insert;
|
||||||
|
$node = $node->get_from_storage;
|
||||||
};
|
};
|
||||||
if ($@) {
|
if ($@) {
|
||||||
warn $@;
|
warn $@;
|
||||||
|
@ -82,6 +82,12 @@ sub MIGRATIONS {
|
|||||||
'ALTER TABLE conquer_teams ADD COLUMN color TEXT NOT NULL DEFAULT \'#000\';',
|
'ALTER TABLE conquer_teams ADD COLUMN color TEXT NOT NULL DEFAULT \'#000\';',
|
||||||
'ALTER TABLE conquer_teams ALTER COLUMN color SET DEFAULT \'#555\';',
|
'ALTER TABLE conquer_teams ALTER COLUMN color SET DEFAULT \'#555\';',
|
||||||
'ALTER TABLE conquer_teams ALTER COLUMN color SET DEFAULT \'#aaa\';',
|
'ALTER TABLE conquer_teams ALTER COLUMN color SET DEFAULT \'#aaa\';',
|
||||||
|
'CREATE EXTENSION IF NOT EXISTS postgis;',
|
||||||
|
'ALTER TABLE conquer_node ADD COLUMN geometry GEOMETRY NULL;',
|
||||||
|
'UPDATE conquer_node SET geometry=ST_MakePoint(coordinate_1, coordinate_2);',
|
||||||
|
'ALTER TABLE conquer_node ALTER COLUMN geometry SET NOT NULL;',
|
||||||
|
'ALTER TABLE conquer_node DROP COLUMN coordinate_1;',
|
||||||
|
'ALTER TABLE conquer_node DROP COLUMN coordinate_2;',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,14 +25,6 @@ __PACKAGE__->add_columns(
|
|||||||
is_nullable => 0,
|
is_nullable => 0,
|
||||||
default_value => \'0',
|
default_value => \'0',
|
||||||
},
|
},
|
||||||
coordinate_1 => {
|
|
||||||
data_type => 'real',
|
|
||||||
is_nullable => 0,
|
|
||||||
},
|
|
||||||
coordinate_2 => {
|
|
||||||
data_type => 'real',
|
|
||||||
is_nullable => 0,
|
|
||||||
},
|
|
||||||
type => {
|
type => {
|
||||||
data_type => 'text',
|
data_type => 'text',
|
||||||
is_nullable => 0,
|
is_nullable => 0,
|
||||||
@ -40,9 +32,37 @@ __PACKAGE__->add_columns(
|
|||||||
description => {
|
description => {
|
||||||
data_type => 'text',
|
data_type => 'text',
|
||||||
is_nullable => 0,
|
is_nullable => 0,
|
||||||
}
|
},
|
||||||
|
geometry => {
|
||||||
|
data_type => 'geometry',
|
||||||
|
is_nullable => 0,
|
||||||
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
|
sub coordinate_2($self) {
|
||||||
|
require BurguillosInfo::Schema;
|
||||||
|
my $resultset = BurguillosInfo::Schema->Schema->resultset('ConquerNode');
|
||||||
|
my ($new_self) = $resultset->search({uuid => $self->uuid}, {
|
||||||
|
'+select' => {
|
||||||
|
ST_Y => { ST_Centroid => 'geometry' },
|
||||||
|
-as => 'coordinate_2',
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return $new_self->get_column('coordinate_2');
|
||||||
|
}
|
||||||
|
|
||||||
|
sub coordinate_1($self) {
|
||||||
|
require BurguillosInfo::Schema;
|
||||||
|
my $resultset = BurguillosInfo::Schema->Schema->resultset('ConquerNode');
|
||||||
|
my ($new_self) = $resultset->search({uuid => $self->uuid}, {
|
||||||
|
'+select' => {
|
||||||
|
ST_X => { ST_Centroid => 'geometry' },
|
||||||
|
-as => 'coordinate_1',
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return $new_self->get_column('coordinate_1');
|
||||||
|
}
|
||||||
|
|
||||||
sub serialize ( $self, $player = undef ) {
|
sub serialize ( $self, $player = undef ) {
|
||||||
$self = $self->get_from_storage();
|
$self = $self->get_from_storage();
|
||||||
my $return = {
|
my $return = {
|
||||||
|
Loading…
Reference in New Issue
Block a user