며칠 전 레거시 시스템에서 마이그레이션 한 디버그 데이터에 대한 CRUD를 만들기 위해 admin 기능을 사용하여 django1.4에서 프로젝트를 작성했습니다 새 시스템 (마이그레이션이 완전히 성공하지 못함)으로 django 1.4를 사용하고 랩톱에 프로덕션 데이터베이스 복사본을 작성했지만 내 리눅스에서는 postgresql9.1을 사용하므로 프로젝트를 구성하려고했을 때 원래 서버에서 테스트 databes (postgresql8.1)에 나는 syncdb
및 migrate
문에서도 오류 가지고 :버그 # 10467과 관련된 django1.4 및 postgresql 8.1의 RETURN postgresql statment 피하기
File "/home/diegueus9/webapps/fixsysandinos/local/lib/python2.7/site-packages/django/db/backends/util.py", line 40, in execute
return self.cursor.execute(sql, params)
File "/home/diegueus9/webapps/fixsysandinos/local/lib/python2.7/site-packages/django/db/backends/postgresql_psycopg2/base.py", line 52, in execute
return self.cursor.execute(query, args)
django.db.utils.DatabaseError: syntax error at or near "RETURNING"
LINE 1: ...") VALUES (E'permission', E'auth', E'permission') RETURNING ...
를 그래서 나는 조금 연구를했고 나는 티켓 #10467 (현재 폐쇄)를 내가 발견 n django는 statment RETURNING을 사용하면 postgresql 8.1에서 8.2 (전)까지 구문을 지원하지 않기 때문에 오류가 발생한다고 말합니다. 버그는 8 개월 전에 닫힌 것처럼 보이지만 어떤 시점에서는 다시 도입되었다고 생각합니다. 티켓의 스레드에서 문제는 자동 커밋 동작과 관련 될 수 있으며 회신은 connection.features.can_return_id_from_insert
입니다.
을 다시 열 수 있나요? 자동 커밋 동작을 비활성화하고 위험을 가정해야합니다 (나는 그렇게 희망하지 않습니다) 또는 설정을 통해 connection.features.can_return_id_from_insert
을 False
으로 설정하고 이러한 방식으로 목표를 달성 할 수 있습니까? 데이터베이스를 업그레이드하거나 클라이언트의 요구 사항입니다 때문에 장고 버전이 옵션을 선택하지 않습니다 다운 그레이드
PostgreSQL 버전 8.1은 2010 년 12 월 현재 EOL입니다. –
나는 Frank에 동의합니다. 왜 PostgreSQL의 지원되는 (그리고 더 나은) 버전으로 업그레이드하지 않습니까? –
클라이언트가 마이그레이션 비용을 감당할 수 없으므로 데이터베이스를 업그레이드 할 수 없습니다. – diegueus9