2012-03-30 2 views
4

Windows Server 2008 R2에서 django-mssql을 설정하는 데 문제가 있습니다.django-mssql 문제 설정

DATABASES = { 
'default': { 
    'NAME': 'my_database', 
    'ENGINE': 'sqlserver_ado', 
    'HOST': 'dbserver\\ss2008', 
    'USER': '', 
    'PASSWORD': '', 
    'OPTIONS' : { 
     'provider': 'SQLOLEDB', 
     'use_mars': True, 
    }, 
    } 
} 

내 사이트 디렉터리에서 실행 :

python manage.py syncdb 

나는 그것을라는 오류가 나는 모든 설치하지만, 장고 - MSSQL에 대한 위키 설정과 유사한 파일 설정에 말한다 사용 가능한 데이터베이스 백엔드가 아닙니다. django-mssql을 설치할 때 여기에 백엔드를 설치 한 것 같습니다 \ site-packages \ django_mssql-1.0.1-py2.7.egg \ sqlserver_adosite-packages \ django \ db \ backends에 복사해야합니다.?

DATABASES = { 
'default': { 
    'NAME': 'my_database', 
    'ENGINE': 'django_mssql-1.0.1-py2.7.egg.sqlserver_ado', 
    'HOST': 'dbserver\\ss2008', 
    'USER': '', 
    'PASSWORD': '', 
    'OPTIONS' : { 
     'provider': 'SQLOLEDB', 
     'use_mars': True, 
    }, 
    } 
} 

나는 실종 뭔가이 백엔드를 설정할 때 : 나는 내 설정을 설정하면

나는 같은 오류가? 이것은 처음으로 장고를 사용하는 것이지만 다른 백엔드 설정에 대한 설명서에서 아무 것도 보지 못했으며 django-mssql wiki 나 issues에도 아무 것도없는 것 같습니다.

어딘가에 다른 문서가 있으면 알려 주시기 바랍니다.

EDIT : django 앱이 Ubuntu 서버에서 실행 중입니다.

+0

Django 디렉토리에 외부 파일을 복사하지 않습니다. 별로 좋은 생각이 아닙니다. 하지만 당신은 아마도 설정 파일의 어딘가에서 백엔드를 가져올 필요가 있습니다. 어쩌면'mssql import *'에서'try? –

+0

Django 1.4로 업그레이드하려면 django-mssql v1.1로 업데이트해야합니다. 'pip install django-mssql == 1.1' – Manfre

+0

1.4와 함께 작동하도록 업데이트 해 주셔서 감사합니다. – rjbez

답변

5

"sqlserver_ado"를 파이썬 쉘에서 가져올 수 있는지 확인해야합니다.

은 내가 README.txt를 살펴 보자

\ \ 사이트 - 패키지에 광산을 넣어, 당신의 PATH에 어딘가에 폴더 sqlserver_ado를 넣습니다. 엔진이 원하는 않습니다

는 설정 당신은 의존성 PyWin32를 설치해야 settings sample page.

+0

이 작업을 수행하는 것처럼 보였습니다 ... 제가 가지고 있던 문서에는 tid-bit가 없었습니다. 감사. – rjbez

+0

또 하나 고려해야 할 것은 pywin32로 업데이트하는 것입니다. http://stackoverflow.com/questions/4145079/importerror-no-module-named-pythoncom –

1

에서 수행하는 방법과 유사 "sqlserver_ado"로 설정합니다. python 바이너리 페이지에서 pip 또는 다운로드 할 수 있습니다. http://www.lfd.uci.edu/~gohlke/pythonlibs/

+1

죄송합니다. 위의 언급은 없지만 django 앱은 Ubuntu에서 실행됩니다. 그래서 PyWin32는 설치되지 않습니다. – rjbez

0

django_pyodbc를 작동 시키려고했으나 할 수 없었습니다.

django.core.exceptions.ImproperlyConfigured: 'django_pyodbc' isn't an available database backend. 
Try using 'django.db.backends.XXX', where XXX is one of: 
    u'base', u'mysql', u'oracle', u'postgresql_psycopg2', u'sqlite3' 
Error was: cannot import name BaseDatabaseWrapper 

내가 directed to this post as a solution, 그래서 여기에 또한 내 대답을 게시합니다 :이 오류가 발생했다. 1.8 대신 django 1.6으로 다운 그레이드했으며, 이제 django_pyodbc는 데이터베이스 백엔드로 작동합니다.

0

에 따라 django_pyodbc는 Django 1.8에서 작동합니다. 그래서 이것은 SQL Server 2008 R2 지원이 필요한 사람들을 위해 django-mssql에 좋은 대안으로 보인다.

5

명령 셸에서 "import sqlserver_ado"를 확인하는 것에 대한 Dustin의 의견을 통해 Python32가 설치된 장고 1.8.1, Python 3.5 Win32 시스템의 올바른 경로로 이동하게되었습니다.

스포일러 경고이는 오류없이 실행 내 장고 인스턴스를 가져옵니다. 아직 ADO 연결을 테스트하지 않았습니다.내가 가진

첫 번째 오류 메시지가 있었다 :

No module named 'django.db.backends.util' 

나는라는 파일이 발견는 그래서 그것을 복사 django.db에 이름 django.db.backends.utils가. backends.util ('s'없이) 오류 메시지가 나타납니다.

이렇게 해를 끼치 지 않기를 바라면서, 나는이 문제 해결 라인에서 계속했습니다. 내가 가진

다음 오류 메시지가 있었다 : 나는 base.py에서 7 호선을 변경

File "C:\Program Files (x86)\Python35-32\lib\site-packages\sqlserver_ado\base.py", line 7, in <module> 
from django.db.backends import BaseDatabaseWrapper, BaseDatabaseFeatures, BaseDatabaseValidation, BaseDatabaseClient 
ImportError: cannot import name 'BaseDatabaseWrapper' 

에 지금 말 :

#from django.db.backends import BaseDatabaseWrapper, BaseDatabaseFeatures, BaseDatabaseValidation, BaseDatabaseClient 
from django.db.backends.base.base import BaseDatabaseWrapper 
from django.db.backends.base.features import BaseDatabaseFeatures 
from django.db.backends.base.validation import BaseDatabaseValidation 
from django.db.backends.base.client import BaseDatabaseClient 

네, 나쁜 라인을 주석과 별도의 사를 추가하는 것 윤곽. 장고에서 에서, 라인 3 :

File "C:\Program Files (x86)\Python35-32\lib\site-packages\sqlserver_ado\base.py", line 18, in <module> 
from .introspection import DatabaseIntrospection 

파일 "\ Program 파일 (x 86) \ Python35-32 \ lib 디렉토리 \ 사이트 - 패키지 \ sqlserver_ado \ introspection.py는 C :" 은 그 때 나는이 오류가 발생했습니다. db.backends 수입 BaseDatabaseIntrospection ImportError를 : 이름을 가져올 수 없습니다 'BaseDatabaseIntrospection'그래서 내가 읽은 지금에 선 3 변경

: creation.py에 대한 등등

from django.db.backends.base.introspection import BaseDatabaseIntrospection 

과 :

를 operations.py에 대한
from django.db.backends.base.creation import BaseDatabaseCreation 

:

from django.db.backends.base.operations import BaseDatabaseOperations 

schema.py에 대한 :

from django.utils.log import getLogger 

희망이 사람을 도움이됩니다. 희망 ADO 모듈 실제로 뭔가 연결합니다.

-Sean

+0

정확히 똑같은 문제가있었습니다. 장고, pywin32 및 django-mssql을 새로 설치하고 난 첫 번째 장애물에 떨어졌습니다.이 버그입니까? 나는 파이썬 2.7을 사용하고있다. –

+2

'from logging import getLogger'는 마지막 부분에서 작업을 수행했다. –