최근 Django 프로젝트 뒤에 데이터베이스의 SQL 덤프를 만들었습니다. SQL을 정리 한 후 DB와 모든 데이터를 복원 할 수있었습니다. 문제는 시퀀스가 모두 망쳐 버렸다는 것입니다. 새로운 사용자를 추가하고 파이썬 오류 IntegrityError: duplicate key violates unique constraint
을 생성했습니다.Postgresql 덤프는 마지막 키 또는 그 이후에 시작하는 시퀀스를 생성합니까?
필자는 당연히 SQL 덤프가 시퀀스를 다시 시작하지 않는다고 생각했습니다. 그러나이 한 :
DROP SEQUENCE "auth_user_id_seq" CASCADE;
CREATE SEQUENCE "auth_user_id_seq" INCREMENT 1 START 446 MAXVALUE 9223372036854775807 MINVALUE 1 CACHE 1;
ALTER TABLE "auth_user_id_seq" OWNER TO "db_user";
내가 알아 낸 그 성공 객체/행 생성 허용 (기존 데이터와 같은 순서로 모든 테이블 또는 새로운 행) 사용자를 생성에서 반복 시도. 이로 인해 긴급한 문제가 해결되었습니다.
하지만 그 테이블의 마지막 사용자 ID가 446 인 경우 - 위의 시퀀스 생성에서 같은 시작 값 - Postgresql이 단순히 해당 키가있는 행을 만들기 시작한 것처럼 보입니다.
SQL 덤프가 잘못된 시작 키를 1 씩 제공합니까? 또는 주어진 시작 ID 다음에 시퀀스를 시작하기 위해 다른 명령을 호출해야합니까? 킨이 궁금해.
추가 질문 추가 : http://stackoverflow.com/questions/3168187/django-orm-misreading-postgresql-sequences – bennylope