2016-07-14 3 views
1

단일 Django 프로젝트 아래에 여러 개의 응용 프로그램이있는 상황을 계승했습니다. 앱은 대부분 관련성이 없지만 여전히 동일한 프로젝트에 있습니다.서로 다른 장고 버전의 Django 응용 프로그램 두 개 실행

프로젝트에서 장고 1.6.4를 사용 중이며 LTS 버전을 사용하려면 1.8 이상으로 업그레이드하고 싶습니다. 각 앱을 한 번에 하나씩 업그레이드하여 점진적으로 제어하고 싶습니다.

동일한 장고 프로젝트에서 두 개의 서로 다른 버전의 장고로 두 개의 개별 앱을 실행할 수 있습니까? 또는 각 앱을 한 번에 하나씩 자체 프로젝트로 나눌 수있는 유일한 방법입니까?

답변

1

django의 단일 버전 만 약간의 관련 앱을 사용하여 settings.py을 안전하게 읽을 수는 없지만 더 좋을 수는 없습니다. django의 두 가지 버전을 읽고 실행하도록 허용하면 settings.py 혼돈이 발생할 수 있습니다.

이론상 추가 settings.py 파일을 추가하고 특정 응용 프로그램을 주석 처리하고 (의존성이 없다는 것을 전제로) 동일한 데이터베이스에서 두 번째 django 인스턴스를 부팅 할 수 있습니다. 하지만 그것은 문제를 요구하고 있습니다.

예를 들어 특정 model.*Field이 django 버전간에 약간 다르게 구현되는 경우 데이터베이스 불일치로으로 실행됩니다. 동일한 데이터베이스 테이블에서 두 가지 버전의 django 읽기/쓰기를 수행하는 것보다 한 번에 모든 응용 프로그램을 업그레이드하는 것이 더 안전합니다. 당신은 당신이 두 settings.py 파일 애플 리케이션 A를 하나의 앱에 INSTALLED_APPS에서 B와 없는 하나의 앱 다른 두 settings.py에 나타납니다을 만들 수 있다는 것을 100 % 확신하는 경우 즉

, 당신은 안전 해요 . 나는 앱 사이의 의존성이 두 세트의 앱에서 깔끔하게 구분할 수있는 장고 프로젝트를 아직 보지 못했지만, 프로젝트에서이를 관리 할 수 ​​있다면 두 버전의 django 인스턴스 (각각 버전이 다르다)를 안전하게 시작할 수있다. 올바른 setting.py을 각각 전달하십시오. 기본적으로

: 그것을 죽이는 것을 거기에

애플 리케이션은

단어 "대부분"주로 관련이 없습니다. 한편


, 당신은 항상 데이터베이스의 복사본을 만들고이 개 장고 프로젝트, 하나 개의 데이터베이스 인스턴스에 연결된 각을 작성하는 옵션이 있습니다.

그러면 나중에 버릴 데이터베이스에서 django의 새 버전을 자유롭게 테스트 할 수 있습니다. 업그레이드를 위해 훨씬 더 안전한 옵션입니다.

관련 문제