0
有沒有辦法從第一個數據庫獲取所有存儲過程並將其傳輸到第二個創建數據庫腳本的過程? (不使用pgAdmin的或類似的東西)Posgresql存儲過程傳輸
有沒有辦法從第一個數據庫獲取所有存儲過程並將其傳輸到第二個創建數據庫腳本的過程? (不使用pgAdmin的或類似的東西)Posgresql存儲過程傳輸
如果你真的只在功能感興趣,您可以查詢pg_proc
目錄,並抓住給定模式的CREATE FUNCTION
語句(假設public
):
$ psql -AXtqc "SELECT pg_get_functiondef(oid)||';' FROM pg_proc p WHERE p.pronamespace = (SELECT oid FROM pg_namespace WHERE nspname = 'public')" your_first_database
如果你真的只需要一個步驟:
$ psql -AXtqc "SELECT pg_get_functiondef(oid)||';' FROM pg_proc p WHERE p.pronamespace = (SELECT oid FROM pg_namespace WHERE nspname = 'public')" your_first_database | psql your_second_database
這有利於一次性的任務,但對於最終的劇本不太好,因爲查詢可能會改變從一個版本到其他的PostgreSQL。另外,它考慮了由擴展創建的函數,就好像它們不是。
可能使用'pg_dump'和'--section = post-data --schema-only'選項。 –