qwat / qwat-data-model

TEKSI Water module (project QWAT) - PostgreSQL / postgis Datamodel
https://www.teksi.ch
23 stars 25 forks source link

Error when restore QWAT 1.3.6 #360

Closed ponceta closed 1 year ago

ponceta commented 2 years ago

Error when restore QWAT 1.3.6

https://gist.github.com/ponceta/7a053cd9212e12f23faeaadc228789bc

Using pgAdmin 6.8

pg_restore: creating VIEW "qwat_od.vw_pipe_child_parent"
pg_restore: while PROCESSING TOC:
pg_restore: from TOC entry 345; 1259 53664 VIEW vw_pipe_child_parent postgres
pg_restore: error: could not execute query: ERREUR:  la fonction public.st_curvetoline(public.geometry, double precision) n'existe pas
LINE 4:     (public.st_curvetoline(public.st_geomfromewkt(((((((((((...
             ^
HINT:  Aucune fonction ne correspond au nom donné et aux types d'arguments.
Vous devez ajouter des conversions explicites de type.
Command was: CREATE VIEW qwat_od.vw_pipe_child_parent AS
 SELECT foo2.child,
    foo2.parent,
    (public.st_curvetoline(public.st_geomfromewkt((((((((((((((('SRID='::text || qwat_sys.fn_setting_srid()) || ';CIRCULARSTRING('::text) || public.st_x(foo2.start_point)) || ' '::text) || public.st_y(foo2.start_point)) || ','::text) || (public.st_x(foo2.middle_point) + (foo2.distance * cos(foo2.azimuth)))) || ' '::text) || (public.st_y(foo2.middle_point) + (foo2.distance * sin(foo2.azimuth)))) || ','::text) || public.st_x(foo2.end_point)) || ' '::text) || public.st_y(foo2.end_point)) || ')'::text)), (15)::double precision))::public.geometry(LineString,21781) AS geometry
   FROM ( SELECT foo.child,
            foo.parent,
            foo.start_point,
            foo.end_point,
            ((pi() / (2)::double precision) + public.st_azimuth(foo.start_point, foo.end_point)) AS azimuth,
            ((0.5)::double precision * public.st_distance(foo.start_point, foo.end_point)) AS distance,
            (public.st_lineinterpolatepoint(public.st_makeline(foo.start_point, foo.end_point), (0.5)::double precision))::public.geometry(Point,21781) AS middle_point
           FROM ( SELECT a.id AS child,
                    b.id AS parent,
                    (public.st_force2d(public.st_lineinterpolatepoint(a.geometry, (0.5)::double precision)))::public.geometry(Point,21781) AS start_point,
                    public.st_closestpoint(public.st_makeline((public.st_lineinterpolatepoint(public.st_force2d(b.geometry), (LEAST((1)::numeric, (((4)::numeric / b._length2d) / (2)::numeric)))::double precision))::public.geometry(Point,21781), (public.st_lineinterpolatepoint(public.st_force2d(b.geometry), (GREATEST((0)::numeric, ((1)::numeric - (((4)::numeric / b._length2d) / (2)::numeric))))::double precision))::public.geometry(Point,21781)), a.geometry) AS end_point
                   FROM (qwat_od.pipe a
                     JOIN qwat_od.pipe b ON ((a.fk_parent = b.id)))
                  WHERE (a.fk_parent IS NOT NULL)) foo) foo2;

pg_restore: error: could not execute query: ERREUR:  la relation « qwat_od.vw_pipe_child_parent » n'existe pas
Command was: ALTER TABLE qwat_od.vw_pipe_child_parent OWNER TO postgres;
ponceta commented 1 year ago

Update postgres version