Postgres 데이터베이스의 모든 기능을 백업하고 싶습니다. Postgres에서만 기능의 백업을 가져 오는 방법은?Postgres에서만 기능의 백업을하는 방법
17
A
답변
36
사용 pg_getfunctiondef
; system information functions을 참조하십시오. pg_getfunctiondef
가 PostgreSQL 8.4에 추가되었습니다.
SELECT pg_get_functiondef('proc_name'::regproc);
는
pg_catalog
에서 시스템 테이블을 조회 할 수있는 스키마의 모든 기능을 덤프; 당신이
public
에서 모든 것을 원한다면 말 :
SELECT pg_get_functiondef(f.oid)
FROM pg_catalog.pg_proc f
INNER JOIN pg_catalog.pg_namespace n ON (f.pronamespace = n.oid)
WHERE n.nspname = 'public';
은 만약 당신이 원하는 아닌 경우 "pg_
로 시작 제외한 모든 스키마에서"을 말할 위를 변경하는 사소한입니다. ,
psql -At dbname > /path/to/output/file.sql <<"__END__"
... the above SQL ...
__END__
다른 DB에서 출력을 실행하려면 같은 것을 사용 :
는 psql
에서 당신은 가진 파일이 덤프 수
psql -1 -v ON_ERROR_STOP -f /path/to/output/file.sql target_db_name
당신이 좋아하는 데시벨 사이의 기능을 복제하는 경우 그러나 svn 또는 git와 같은 개정 제어 시스템에 함수 정의의 권한있는 사본을 SQL 스크립트로 저장하는 것이 좋으며, PostgreSQL 확장으로 패키징하는 것이 더 바람직합니다. packaging extensions을 참조하십시오.
17
pg_dump
에는 기능 만 덤프하도록 지정할 수 없습니다. 그러나 데이터가없는 덤프 (-s
)를 만들고 복원 할 때 필터링 할 수 있습니다. -Fc
부분에 유의하십시오. pg_restore
에 적합한 파일이 생성됩니다.
pg_dump -U username -Fc -s -f dump_test your_database
은 그 다음의 기능 목록 작성 : 먼저 덤프 걸릴
pg_restore -U username -d your_other_database -L function_list dump_test
: 마지막으로
pg_restore -l dump_test | grep FUNCTION > function_list
및 복원 (-L
는 위에서 만든 목록 파일을 지정합니다)
관련 문제
- 1. 특정 간격으로 파일 백업을하는 방법은 무엇입니까?
- 2. 기능의 HTML
- 3. 바꾸기 기능의 문제
- 4. 는, 방법 및 기능의 차이 무엇
- 5. wingrid 기능의 기본 동작을 지정하는 방법
- 6. 이미지에서 특정 기능의 존재를 감지하는 좋은 방법
- 7. Outlook 추가 기능의 테스트를 자동화하는 방법?
- 8. WordPress 커스텀 포트폴리오 기능의 기초를 찾는 방법
- 9. 다중 기능의 객체 사용
- 10. 기능의 로깅/종료
- 11. 이 기능의 컬 버전입니까?
- 12. 로그 기능의 복잡성은 무엇입니까?
- 13. 자바이 기능의 VB.Net 변환에
- 14. 이 기능의 기능은 무엇입니까?
- 15. 이러한 기능의 차이점
- 16. 이 기능의 문제점은 무엇입니까?
- 17. CUDA의 Malloc 기능의 효율성
- 18. 내부 기능의 목적은 무엇입니까?
- 19. VB.Net 일부 기능의 차이점
- 20. 친구 기능의 STL 문제
- 21. 타이머 작업 기능의 범위
- 22. 라이브 기능의 문제점
- 23. Facebook 기능의 이름은 무엇입니까?
- 24. 체크섬 기능의 리버스 엔지니어링
- 25. 오이 : 기능의 크기
- 26. 괄호 기능의 차이와
- 27. 이 기능의 이름은 무엇입니까?
- 28. 런타임시 기능의 표현과 사용
- 29. R - POS 기능의 상당
- 30. 고지 기능의 효율적인 평가
또한이 함수를 다른 db로 복원하고 싶습니다. 어떻게 할 수 있습니까 ??. 함수 만 복원하면됩니다. – vmb
@vmb 출력은 SQL 함수 정의이므로 psql에 파이프하십시오. 업데이트 된 답변보기 더 좋은 점은 확장을 만들고 그 안에 확장을 꾸미는 것입니다. –
'pg_get_functiondef ('proc_name':: regproc)'**는 때때로 함수 정의의 일부로 간주 될 수있는 함수의 권한 ('GRANT' 및'REVOKE' 문)을 덤프하지 않습니다. – NumberFour