2012-06-01 5 views
6

동일한 데이터베이스에 액세스하는 두 개의 앱이 있습니다. 첫 번째 클라이언트는 TCP를 통해 연결하고 SQLAlchemy를 사용하여 db에 씁니다. 두 번째는 장고를 사용하는 좀 더 일반적인 웹 애플리케이션입니다. 둘 다 읽기/쓰기 요구 사항이 있습니다.동일한 데이터베이스에서 SQLAlchemy와 Django ORM을 모두 사용하십시오

나는 데이터베이스 액세스 레이어를 통합하고 싶지만 때문에 따기 단지 SQLAlchemy의하거나 장고가 매력입니다 :

  1. 나는, 인증 장고를 사용하도록을 필요로 권한, 어쩌면 타사 플러그인을 싶습니다 장고 ORM (내가 틀렸다면 나에게 올바른).
  2. SQLAlchemy (지금까지)를 사용하는 것은 Django 응용 프로그램 외부에서 장고 ORM을 사용하는 것보다 훨씬 간단합니다. 이는 TCP/IP 서버 응용 프로그램이며 HTTP/웹 응용 프로그램이 아닙니다.

동일한 데이터베이스에서이 두 ORM을 혼합하는 데 문제가 있습니까?

Django inspectdb과 같은 일종의 내성 검사를 사용하면 어떤 시스템에서 (Django, SQLA) 모델을 만들어야합니까?

+0

방금 ​​[django-sqlalchemy] (https://code.google.com/p/django-sqlalchemy/wiki/Roadmap) 프로젝트를 찾았습니다. 나는 그것이 당신의 필요에 어울리는 지 모르지만, 그것에 대해 확실히 읽을만한 가치가 있습니다. – noisy

답변

6

먼저 manage.py, WSGI 처리기 및 기타 HTTP 관련 항목 외부에서 장고 ORM을 사용하는 것은 그리 어렵지 않습니다. 모든 파이썬 스크립트를 사용할 수 있지만 초기화가 필요합니다 (example).

두 번째 - SQLA는 매우 강력한 도구이며 Django ORM (진정한 다형성 및 다형성 쿼리와 유사)에서 발생하기 어려운 항목을 처리 할 수 ​​있습니다. 선택해야한다면 개인적으로 Django ORM을 플랫폼으로 사용하여 모델을 만든 다음 SQLA에서 수동으로 매핑합니다. 유연성이 뛰어나고 채택하기가 쉽기 때문입니다. 반대의 경우에는 작동하지 않을 수도 있습니다.

마지막으로, Django ORM을 양쪽에서 사용할 수 있으므로 에 플러그인으로 인해 Django ORM을 사용해야하므로 SQLA를 포기하는 것이 좋습니다. 그것은 강력한 도구이지만 복잡한 것도 있습니다. 하나의 데이터베이스에서 두 개의 서로 다른 ORM을 사용하면 미래에 예기치 않은 문제가 발생할 수 있으며 응용 프로그램의 복잡성이 증가하므로 유지 관리가 더 어려워집니다.

+1

감사합니다. 나는 당신의 조언을 듣고 SQLA를 포기할 것입니다. – user1431368

관련 문제