저는 리눅스/유닉스 관리자라고 말해 봅시다. 그 말은 내 관리자가 이전 PostgreSQL 데이터베이스를 8.4.20을 실행하는 RedHat 서버로 옮기는 작업을했다고했습니다. 7.2.1 db를 성공적으로 이동했지만 7.4.20 db로 이동하는 문제가 발생했습니다.제약 조건 트리거 생성 오류
나는 pg_dump –c filename
과 psql < filename
을 사용합니다. 문제가되는 db에 대해서는 CREATE CONSTRAINT TRIGGER
문장이 나타날 때까지 모든 것이 실행됩니다. 이 파일에서와 같이 내가 그것을 실행하면 내가 얻을 : 나는 set schema 'pg_catalog';
을 실행하면
NOTICE: ignoring incomplete trigger group for constraint "" FOREIGN KEY data(ups) REFERENCES upsinfo(ups) DETAIL: Found referenced table's DELETE trigger. CREATE TRIGGER
내가 얻을 : 참여
ERROR: relation "upsinfo" does not exist
표 것은 (나는 생각한다)은 다음과 같습니다
CREATE TABLE upsinfo (
ups text NOT NULL,
ipaddr inet,
rcomm text,
wcomm text,
reachable boolean,
managed boolean,
comments text,
region text
);
CREATE TABLE data (
date timestamp with time zone,
ups text,
mib text,
value text
);
방아쇠 문제 트리거 문 :
CREATE CONSTRAINT TRIGGER "<unnamed>"
AFTER DELETE ON upsinfo
FROM data
NOT DEFERRABLE INITIALLY IMMEDIATE
FOR EACH ROW
EXECUTE PROCEDURE "RI_FKey_cascade_del"('<unnamed>', 'data', 'upsinfo', 'UNSPECIFIED', 'ups', 'ups');
RI_FKey_cascade_del
함수는 다른 버전의 pg_catalog에서 다르게 정의되어 있습니다. search_path는 'public, pg_catalog'로 설정되어 있으므로 스키마를 설정해야하는 이유가 혼란 스럽습니다.
다시 나는 진짜 PostgreSQL DBA가 아니므로 친절하게 노력하십시오.
도움 주셔서 감사합니다. (그리고 부드러 우며) 전형적인 이야기입니다. 아무도 소프트웨어를 수년간 유지하고 아무도 갑자기 모든 상처를 입지 않습니다. 나는 새로운 서버에서 Postgres 버전을 업데이트 할 것을 요청할 것이다. –