4
我有一個PostgreSQL數據庫,並在其中加載了PostGIS函數。我想轉儲出數據庫的模式,但pg_dump -s
會將函數和表定義一起轉出。轉儲PostgreSQL數據庫時排除函數定義
有沒有辦法排除功能,只是轉儲表定義?
我有一個PostgreSQL數據庫,並在其中加載了PostGIS函數。我想轉儲出數據庫的模式,但pg_dump -s
會將函數和表定義一起轉出。轉儲PostgreSQL數據庫時排除函數定義
有沒有辦法排除功能,只是轉儲表定義?
據我所知,pg_dump
和pg_dumpall
不支持任何此類限制。
您可以轉移全部功能的專用模式,你可以從轉儲排除這樣的:如果你走這條路線,你可以migrate functions to another schema這樣
pg_dump mydb -N function_schema > mydump.sql
:
ALTER FUNCTION myfunc() SET SCHEMA function_schema;
在這種情況下,我也會調整search_path
的postgresql.conf
(可能還有數據庫和角色的默認值)
SET search_path = public,function_schema [,more schemas]
作爲替代,你可以離開的功能在其默認模式public
,並且不使用該模式爲別的。把你的對象放在一個或多個獨立的模式中。這應該會使PostGis的升級變得更容易。
不是對您的對象使用public
架構通常是一個好主意。我通常保留它爲PostGis或默認安裝到public
的其他擴展。我喜歡爲每個應用程序使用專用模式。使維護更簡單 - 包括備份和授予權限。
或者,您可以使用pg_restore的--list相關選項並手動修剪生成的列表中的項目。 – 2012-03-09 14:07:04
看到這個例子:http://stackoverflow.com/a/31043192/985 – 2015-06-25 06:53:50