2010-07-01 3 views
3

Django에 새로운 데이터베이스 연결을 추가 할 수 있습니까?즉시 장고 연결을 새로 고칠 수 있습니까?

나는 여러 데이터베이스 (django 1.2.1)를 사용하는 응용 프로그램을 가지고 있으며 실행 중에는 새 데이터베이스를 만들 수 있습니다. 지금 당장이 새로운 데이터베이스 (django.db.connections[db_alias])를 사용해야합니다. 서버를 다시 시작하지 않고도 가능합니까? 모듈 reload을 여기 저기에 사용 하시겠습니까?

감사합니다.

답변

2

이 가능하지만 권장되지 ... 당신은 현재 연결 핸들러에 액세스 할 수 있습니다 ...

이 같은

사용 무언가 :

from django.db import connections 
if not alias in connections.databases: 
    connections.databases[alias] = connections.databases['default'] # Copy 'default' 
    connections.databases[alias]['NAME'] = alias    

있는지 확인은하지 마십시오 현재 스레드에서 모든 데이터베이스 활동이있는 동안 데이터베이스 사전에 새 별명을 추가하십시오.

극복해야 할 문제는 데이터베이스에 액세스하기 전에 항상 현재 스레드가이 코드를 변경해야한다는 것입니다. 나는 이것을 달성하기 위해 미들웨어를 사용한다.

+2

또한이 기술은 Django 데이터베이스 유효성 검사를 우회하므로 데이터베이스의 구조가 완전히 동일해야합니다. – Howard