首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何卸载PostGIS遗留系统(预扩展)

如何卸载PostGIS遗留系统(预扩展)
EN

Stack Overflow用户
提问于 2017-01-10 15:36:31
回答 3查看 869关注 0票数 1

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

代码语言:javascript
复制
CREATE TYPE box2d (
    INTERNALLENGTH = 65,
    INPUT = box2d_in,
    OUTPUT = box2d_out,
    ALIGNMENT = int4,
    STORAGE = plain
);

代码语言:javascript
复制
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相关的数据,我不应该拥有这些数据。我在倾倒和重新装填方面也很好,但显然最好不要这样做。

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-01-12 12:33:33

FWIW,由于似乎没有正式的卸载脚本(据我所知),这是我最后运行的脚本,用于删除postgis创建的所有数据类型和函数:

代码语言:javascript
复制
DROP TYPE IF EXISTS box2d CASCADE;
DROP TYPE IF EXISTS box2df CASCADE;
DROP TYPE IF EXISTS box3d CASCADE;
DROP TYPE IF EXISTS geography CASCADE;
DROP TYPE IF EXISTS geometry CASCADE;
DROP TYPE IF EXISTS geometry_dump CASCADE;
DROP TYPE IF EXISTS gidx CASCADE;
DROP TYPE IF EXISTS pgis_abs CASCADE;
DROP TYPE IF EXISTS spheroid CASCADE;
DROP TYPE IF EXISTS valid_detail CASCADE;

DROP TABLE IF EXISTS spatial_ref_sys CASCADE;

DROP FUNCTION IF EXISTS _postgis_join_selectivity(regclass, text, regclass, text, text) CASCADE;
DROP FUNCTION IF EXISTS _postgis_stats(tbl regclass, att_name text, text) CASCADE;
DROP FUNCTION IF EXISTS checkauth(text, text) CASCADE;
DROP FUNCTION IF EXISTS checkauthtrigger() CASCADE;
DROP FUNCTION IF EXISTS dropgeometrytable(table_name character varying) CASCADE;
DROP FUNCTION IF EXISTS dropgeometrytable(schema_name character varying, table_name character varying) CASCADE;
DROP FUNCTION IF EXISTS geography_analyze(internal) CASCADE;
DROP FUNCTION IF EXISTS geography_gist_compress(internal) CASCADE;
DROP FUNCTION IF EXISTS geography_gist_decompress(internal) CASCADE;
DROP FUNCTION IF EXISTS geography_gist_penalty(internal, internal, internal) CASCADE;
DROP FUNCTION IF EXISTS geography_gist_picksplit(internal, internal) CASCADE;
DROP FUNCTION IF EXISTS geography_gist_union(bytea, internal) CASCADE;
DROP FUNCTION IF EXISTS geography_typmod_in(cstring[]) CASCADE;
DROP FUNCTION IF EXISTS geography_typmod_out(integer) CASCADE;
DROP FUNCTION IF EXISTS geometry_analyze(internal) CASCADE;
DROP FUNCTION IF EXISTS geometry_gist_compress_2d(internal) CASCADE;
DROP FUNCTION IF EXISTS geometry_gist_compress_nd(internal) CASCADE;
DROP FUNCTION IF EXISTS geometry_gist_decompress_2d(internal) CASCADE;
DROP FUNCTION IF EXISTS geometry_gist_decompress_nd(internal) CASCADE;
DROP FUNCTION IF EXISTS geometry_gist_penalty_2d(internal, internal, internal) CASCADE;
DROP FUNCTION IF EXISTS geometry_gist_penalty_nd(internal, internal, internal) CASCADE;
DROP FUNCTION IF EXISTS geometry_gist_picksplit_2d(internal, internal) CASCADE;
DROP FUNCTION IF EXISTS geometry_gist_picksplit_nd(internal, internal) CASCADE;
DROP FUNCTION IF EXISTS geometry_gist_union_2d(bytea, internal) CASCADE;
DROP FUNCTION IF EXISTS geometry_gist_union_nd(bytea, internal) CASCADE;
DROP FUNCTION IF EXISTS geometry_typmod_in(cstring[]) CASCADE;
DROP FUNCTION IF EXISTS geometry_typmod_out(integer) CASCADE;
DROP FUNCTION IF EXISTS gettransactionid() CASCADE;
DROP FUNCTION IF EXISTS gserialized_gist_joinsel_2d(internal, oid, internal, smallint) CASCADE;
DROP FUNCTION IF EXISTS gserialized_gist_joinsel_nd(internal, oid, internal, smallint) CASCADE;
DROP FUNCTION IF EXISTS gserialized_gist_sel_2d(internal, oid, internal, integer) CASCADE;
DROP FUNCTION IF EXISTS gserialized_gist_sel_nd(internal, oid, internal, integer) CASCADE;
DROP FUNCTION IF EXISTS lockrow(text, text, text) CASCADE;
DROP FUNCTION IF EXISTS lockrow(text, text, text, text) CASCADE;
DROP FUNCTION IF EXISTS lockrow(text, text, text, timestamp without time zone) CASCADE;
DROP FUNCTION IF EXISTS postgis_cache_bbox() CASCADE;
DROP FUNCTION IF EXISTS postgis_constraint_dims(geomschema text, geomtable text, geomcolumn text) CASCADE;
DROP FUNCTION IF EXISTS postgis_constraint_srid(geomschema text, geomtable text, geomcolumn text) CASCADE;
DROP FUNCTION IF EXISTS postgis_constraint_type(geomschema text, geomtable text, geomcolumn text) CASCADE;
DROP FUNCTION IF EXISTS postgis_geos_version() CASCADE;
DROP FUNCTION IF EXISTS postgis_lib_build_date() CASCADE;
DROP FUNCTION IF EXISTS postgis_lib_version() CASCADE;
DROP FUNCTION IF EXISTS postgis_libjson_version() CASCADE;
DROP FUNCTION IF EXISTS postgis_libxml_version() CASCADE;
DROP FUNCTION IF EXISTS postgis_proj_version() CASCADE;
DROP FUNCTION IF EXISTS postgis_scripts_build_date() CASCADE;
DROP FUNCTION IF EXISTS postgis_scripts_installed() CASCADE;
DROP FUNCTION IF EXISTS postgis_scripts_released() CASCADE;
DROP FUNCTION IF EXISTS postgis_svn_version() CASCADE;
DROP FUNCTION IF EXISTS postgis_type_name(geomname character varying, coord_dimension integer, use_new_name boolean) CASCADE;
DROP FUNCTION IF EXISTS postgis_typmod_dims(integer) CASCADE;
DROP FUNCTION IF EXISTS postgis_typmod_srid(integer) CASCADE;
DROP FUNCTION IF EXISTS postgis_typmod_type(integer) CASCADE;
DROP FUNCTION IF EXISTS postgis_version() CASCADE;
DROP FUNCTION IF EXISTS st_area(text) CASCADE;
DROP FUNCTION IF EXISTS st_asewkt(text) CASCADE;
DROP FUNCTION IF EXISTS st_asgeojson(text) CASCADE;
DROP FUNCTION IF EXISTS st_asgml(text) CASCADE;
DROP FUNCTION IF EXISTS st_askml(text) CASCADE;
DROP FUNCTION IF EXISTS st_assvg(text) CASCADE;
DROP FUNCTION IF EXISTS st_astext(text) CASCADE;
DROP FUNCTION IF EXISTS st_coveredby(text, text) CASCADE;
DROP FUNCTION IF EXISTS st_covers(text, text) CASCADE;
DROP FUNCTION IF EXISTS st_distance(text, text) CASCADE;
DROP FUNCTION IF EXISTS st_dwithin(text, text, double precision) CASCADE;
DROP FUNCTION IF EXISTS st_intersects(text, text) CASCADE;
DROP FUNCTION IF EXISTS st_length(text) CASCADE;
DROP FUNCTION IF EXISTS st_relatematch(text, text) CASCADE;
票数 2
EN

Stack Overflow用户

发布于 2019-12-14 21:56:20

找到了更多的:

代码语言:javascript
复制
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;

此外,还对以下内容作了评论:

代码语言:javascript
复制
sed -i 's/^CREATE PROCEDURAL LANGUAGE plpgsql;/-- CREATE PROCEDURAL LANGUAGE plpgsql;/g' db.sql
票数 0
EN

Stack Overflow用户

发布于 2022-09-07 11:32:21

只是这方面的最新消息。扩展提供了一个卸载脚本: uninstall_legacy.sql,它存在于至少2.0.0之后。我已经能够在2.4.4扩展上运行这个脚本,然后立即将它升级到3.2.3。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41572542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档