相关疑难解决方法(0)

在没有Postgis功能的情况下转储或恢复Postgresql数据库

我想从postgresql 8.4转储4个数据库以迁移到Postgresql 9.1.

我在PgRouting的旧Postgresql 8.4上使用PostGis,因此每个数据库有大约1000个函数.每次导出所有数据库时,所有函数都写在转储中.当我恢复备份文件时,我在Postgresql 9.1上创建postgis或pgrouting的扩展时会遇到一些冲突

无论如何都要在8.4上转储数据库(创建数据库,创建模式,创建表和数据)而不导出功能?或者无论如何都要在9.1上恢复数据库而不在备份文件上创建功能?

postgresql postgis postgresql-9.1 postgresql-8.4

5
推荐指数
1
解决办法
3696
查看次数

如何将postgis对象和函数定义加载到单独的模式中?

我不想将所有表定义抛出到与使用标准PostGIS安装过程创建的PostGIS定义相同的公共模式(http://postgis.refractions.net/docs/ch02.html).

有没有人对使用PostGIS时如何将事物组织成单独的模式有任何建议?

postgresql postgis

4
推荐指数
1
解决办法
1800
查看次数

如何在导出中排除PL/pgSQL函数?

我使用以下命令从服务器的数据库转储一些结构,以便能够在我的本地硬盘驱动器上创建数据样本.

pg_dump -h myserver.com -U product_user -s -f ./data/base.structure.postgresql.sql -F p -v -T public.* -T first_product.* -T second_product.* -T another_product.locales mydatabase
Run Code Online (Sandbox Code Playgroud)

我需要排除一些模式,否则它会最终导致权限或其他错误.即使我排除了schema public,它也会转储该模式中的所有函数,如下所示:

REVOKE ALL ON FUNCTION gin_extract_trgm(text, internal) FROM PUBLIC;
psql:./data/base.structure.postgresql.sql:8482: ERROR:  function gin_extract_trgm(text, internal) does not exist
Run Code Online (Sandbox Code Playgroud)

我知道这来自PostgreSQL中的全文或相似插件,但是我没有使用它而且我的机器上不需要它,所以我想排除这些功能.

我怎么能这样做?

postgresql pg-dump plpgsql

1
推荐指数
1
解决办法
2676
查看次数