add create/delete views See merge request spatial/postamates!137dev
commit
fc4a5dcac0
@ -0,0 +1,59 @@
|
||||
from django.core.management.base import BaseCommand
|
||||
from service.utils import run_sql_command, log_to_telegram
|
||||
|
||||
CMD_PIVOT_DIST = """CREATE OR REPLACE procedure pivot_dist()
|
||||
--RETURNS SET OF record
|
||||
AS $BODY$
|
||||
DECLARE columnNames TEXT;
|
||||
BEGIN
|
||||
DROP VIEW IF EXISTS points_with_dist;
|
||||
SELECT 'placement_point bigint, ' || string_agg(c, ', ') FROM (SELECT distinct pvz_postamates_group_id, 'd' || pvz_postamates_group_id || ' double precision' as c from service_placementpointpvzdistance order by 1) as asd
|
||||
INTO columnNames;
|
||||
EXECUTE format('CREATE OR REPLACE VIEW points_with_dist AS SELECT *
|
||||
FROM CROSSTAB(
|
||||
$$
|
||||
SELECT placement_point_id, pvz_postamates_group_id, dist
|
||||
FROM service_placementpointpvzdistance
|
||||
ORDER BY 1, 2
|
||||
$$
|
||||
) AS ct(%s)
|
||||
LEFT JOIN service_placementpoint ON placement_point_id=id'
|
||||
,columnNames);
|
||||
END;
|
||||
$BODY$
|
||||
LANGUAGE plpgsql;
|
||||
CALL public.pivot_dist();"""
|
||||
|
||||
CMD_PIVOT_DIST_PRE = """CREATE OR REPLACE procedure prepivot_dist()
|
||||
AS $BODY$
|
||||
DECLARE columnNames TEXT;
|
||||
BEGIN
|
||||
DROP VIEW IF EXISTS prepoints_with_dist;
|
||||
SELECT 'placement_point_id bigint, ' || string_agg(c, ', ') FROM (SELECT distinct pvz_postamates_group_id, 'd' || pvz_postamates_group_id || ' double precision' as c from service_preplacementpointpvzdistance order by 1) as asd
|
||||
INTO columnNames;
|
||||
EXECUTE format('CREATE OR REPLACE VIEW prepoints_with_dist AS SELECT *
|
||||
FROM CROSSTAB(
|
||||
$$
|
||||
SELECT placement_point_id, pvz_postamates_group_id, dist
|
||||
FROM service_preplacementpointpvzdistance
|
||||
ORDER BY 1, 2
|
||||
$$
|
||||
) AS ct(%s)
|
||||
LEFT JOIN service_preplacementpoint ON placement_point_id=id'
|
||||
,columnNames);
|
||||
END;
|
||||
$BODY$
|
||||
LANGUAGE plpgsql;
|
||||
CALL public.prepivot_dist();"""
|
||||
class Command(BaseCommand):
|
||||
help = 'Create procedures'
|
||||
|
||||
def handle(self, *args, **kwargs):
|
||||
try:
|
||||
log_to_telegram('Creating views')
|
||||
run_sql_command(CMD_PIVOT_DIST)
|
||||
log_to_telegram('pivot_dist created')
|
||||
run_sql_command(CMD_PIVOT_DIST_PRE)
|
||||
log_to_telegram('prepivot_dist created')
|
||||
except Exception as e:
|
||||
log_to_telegram('Error creating views: ' + str(e))
|
||||
@ -0,0 +1,18 @@
|
||||
from django.core.management.base import BaseCommand
|
||||
from service.utils import run_sql_command, log_to_telegram
|
||||
|
||||
CMD_PIVOT_DIST = """CALL public.pivot_dist();"""
|
||||
|
||||
CMD_PIVOT_DIST_PRE = """CALL public.prepivot_dist();"""
|
||||
class Command(BaseCommand):
|
||||
help = 'Create views'
|
||||
|
||||
def handle(self, *args, **kwargs):
|
||||
try:
|
||||
log_to_telegram('Creating views')
|
||||
run_sql_command(CMD_PIVOT_DIST)
|
||||
log_to_telegram('pivot_dist created')
|
||||
run_sql_command(CMD_PIVOT_DIST_PRE)
|
||||
log_to_telegram('prepivot_dist created')
|
||||
except Exception as e:
|
||||
log_to_telegram('Error creating views: ' + str(e))
|
||||
@ -0,0 +1,18 @@
|
||||
from django.core.management.base import BaseCommand
|
||||
from service.utils import run_sql_command, log_to_telegram
|
||||
|
||||
CMD_PIVOT_DIST = """drop view points_with_dist;"""
|
||||
|
||||
CMD_PIVOT_DIST_PRE = """drop view prepoints_with_dist;"""
|
||||
class Command(BaseCommand):
|
||||
help = 'delete views'
|
||||
|
||||
def handle(self, *args, **kwargs):
|
||||
try:
|
||||
log_to_telegram('Deleting views')
|
||||
run_sql_command(CMD_PIVOT_DIST)
|
||||
log_to_telegram('pivot_dist deleted')
|
||||
run_sql_command(CMD_PIVOT_DIST_PRE)
|
||||
log_to_telegram('prepivot_dist deleted')
|
||||
except Exception as e:
|
||||
log_to_telegram('Error deleting views: ' + str(e))
|
||||
Loading…
Reference in new issue