如何卸载PostGIS legacy(预扩展)

时间:2017-01-10 15:36:32

标签: postgresql postgis

这似乎是一个转储问题。但是,我有这个运行PostGIS的遗留数据库(但现在不再存在),并且转储中仍然有许多PostGIS特定代码。像这样的东西:

CREATE TYPE box2d (
    INTERNALLENGTH = 65,
    INPUT = box2d_in,
    OUTPUT = box2d_out,
    ALIGNMENT = int4,
    STORAGE = plain
);

CREATE FUNCTION _st_concavehull(param_inputgeom geometry) RETURNS geometry
    LANGUAGE plpgsql IMMUTABLE STRICT
    AS $$
        DECLARE
        vexhull GEOMETRY;
        var_resultgeom geometry;
        var_inputgeom geometry;
        vexring GEOMETRY;
        cavering GEOMETRY;
        cavept geometry[];
        seglength double precision;
        var_tempgeom geometry;
        scale_factor integer := 1;
        i integer;

        BEGIN

                -- First compute the ConvexHull of the geometry
                vexhull := ST_ConvexHull(param_inputgeom);
                var_inputgeom := param_inputgeom;
                ...

(你明白了)。

我没有丢失任何与GIS相关的数据,我不应该这样做。我在倾销和重装方面也很好,但不这样做显然会更好。

由于

2 个答案:

答案 0 :(得分:1)

FWIW,因为它似乎不是一个正式的卸载脚本(我很清楚),这是我最后运行的脚本,用于删除由所创建的所有数据类型和函数PostGIS的:

    var hub = $.connection.hub,
        serverEventsHub = $.connection.serverEventsHub,
        server = serverEventsHub.server,
        client = serverEventsHub.client;

    hub.disconnected(function () {
        window.setTimeout(function () { 
            hub.start();
        }, 5000);
    });
   hub.start();

答案 1 :(得分:0)

发现更多:

DROP FUNCTION IF EXISTS box3d_extent_in(cstring) CASCADE;
DROP FUNCTION IF EXISTS box3d_extent_out(box3d_extent) CASCADE;
DROP FUNCTION IF EXISTS chip_in(cstring) CASCADE;
DROP FUNCTION IF EXISTS chip_out(chip) CASCADE;
DROP FUNCTION IF EXISTS compression(chip) CASCADE;
DROP FUNCTION IF EXISTS datatype(chip) CASCADE;
DROP FUNCTION IF EXISTS factor(chip) CASCADE;
DROP FUNCTION IF EXISTS geography_gist_join_selectivity(internal, oid, internal, smallint) CASCADE;
DROP FUNCTION IF EXISTS geography_gist_selectivity(internal, oid, internal, integer) CASCADE;
DROP FUNCTION IF EXISTS geography_typmod_dims(integer) CASCADE;
DROP FUNCTION IF EXISTS geography_typmod_srid(integer) CASCADE;
DROP FUNCTION IF EXISTS geography_typmod_type(integer) CASCADE;
DROP FUNCTION IF EXISTS geometry_gist_joinsel(internal, oid, internal, smallint) CASCADE;
DROP FUNCTION IF EXISTS geometry_gist_sel(internal, oid, internal, integer) CASCADE;
DROP FUNCTION IF EXISTS height(chip) CASCADE;
DROP FUNCTION IF EXISTS lwgeom_gist_compress(internal) CASCADE;
DROP FUNCTION IF EXISTS lwgeom_gist_decompress(internal) CASCADE;
DROP FUNCTION IF EXISTS lwgeom_gist_penalty(internal, internal, internal) CASCADE;
DROP FUNCTION IF EXISTS lwgeom_gist_picksplit(internal, internal) CASCADE;
DROP FUNCTION IF EXISTS lwgeom_gist_union(bytea, internal) CASCADE;
DROP FUNCTION IF EXISTS postgis_gist_joinsel(internal, oid, internal, smallint) CASCADE;
DROP FUNCTION IF EXISTS postgis_gist_sel(internal, oid, internal, integer) CASCADE;
DROP FUNCTION IF EXISTS postgis_uses_stats() CASCADE;
DROP FUNCTION IF EXISTS setfactor(chip, real) CASCADE;
DROP FUNCTION IF EXISTS setsrid(chip, integer) CASCADE;
DROP FUNCTION IF EXISTS srid(chip) CASCADE;
DROP FUNCTION IF EXISTS st_chip_in(cstring) CASCADE;
DROP FUNCTION IF EXISTS st_chip_out(chip) CASCADE;
DROP FUNCTION IF EXISTS st_compression(chip) CASCADE;
DROP FUNCTION IF EXISTS st_datatype(chip) CASCADE;
DROP FUNCTION IF EXISTS st_factor(chip) CASCADE;
DROP FUNCTION IF EXISTS st_geometry_analyze(internal) CASCADE;
DROP FUNCTION IF EXISTS st_height(chip) CASCADE;
DROP FUNCTION IF EXISTS st_postgis_gist_joinsel(internal, oid, internal, smallint) CASCADE;
DROP FUNCTION IF EXISTS st_postgis_gist_sel(internal, oid, internal, integer) CASCADE;
DROP FUNCTION IF EXISTS st_setfactor(chip, real) CASCADE;
DROP FUNCTION IF EXISTS st_srid(chip) CASCADE;
DROP FUNCTION IF EXISTS st_width(chip) CASCADE;
DROP FUNCTION IF EXISTS width(chip) CASCADE;

DROP VIEW IF EXISTS geography_columns CASCADE;
DROP TABLE IF EXISTS geometry_columns CASCADE;

此外,以下内容已被注释掉:

sed -i 's/^CREATE PROCEDURAL LANGUAGE plpgsql;/-- CREATE PROCEDURAL LANGUAGE plpgsql;/g' db.sql