2012-03-30 35 views
4

我在Win Server 2008 R2上設置django-mssql時遇到了一些問題。我已經安裝了一切,然而,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 

我得到一個錯誤,說明它不是可用的數據庫後端。當我安裝了django-mssql時,它似乎在這裏安裝後端\ site-packages \ django_mssql-1.0.1-py2.7.egg \ sqlserver_ado這是否需要複製到site-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,但是在設置不同後端的文檔中沒有看到任何內容,而且django-mssql wiki或問題似乎也沒有任何內容。

此外,如果有其他文件的某處可以幫助請讓我知道。

編輯:django應用程序在Ubuntu服務器上運行。

+0

我不會將外部文件複製到您的Django目錄中。不是一個好主意。但你很可能需要在設置文件的某處導入後端。也許嘗試'從mssql導入*'? – 2012-03-30 16:25:28

+0

當你決定升級到Django 1.4時,你需要更新到django-mssql v1.1。 'pip install django-mssql == 1.1' – Manfre 2012-06-13 20:24:05

+0

謝謝,很高興他們更新了它與1.4一起工作 – rjbez 2012-06-14 16:02:31

回答

5

你會想確保你可以從你的python shell導入「sqlserver_ado」。

把文件夾sqlserver_ado某處你的路,我把礦\站點包\

看一看的README.txt

發動機不希望被設置爲「sqlserver_ado」類似的設置是如何在settings sample page.

+0

這似乎是這樣做的...我沒有那個tid-bit的文檔。謝謝。 – rjbez 2012-04-26 15:52:43

+0

另一件需要考慮的事情是更新到pywin32。請參閱http://stackoverflow.com/questions/4145079/importerror-no-module-named-pythoncom – 2012-06-22 17:26:32

1

你需要安裝的依賴PyWin32完成。您可以通過點或從Python二進制頁面下載http://www.lfd.uci.edu/~gohlke/pythonlibs/

+1

對不起,這不是上面提到的,但django應用程序在Ubuntu上運行。所以PyWin32不會安裝。 – rjbez 2014-03-03 15:43:59

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,所以我會在這裏發佈我的答案也。 我降級到django 1.6而不是1.8,現在django_pyodbc作爲數據庫後端工作。

0

根據,django_pyodbc現在應該可以使用Django 1.8。所以對於那些需要SQL Server 2008 R2支持的人來說,這似乎是django-mssql的一個很好的選擇。

5

Dustin關於確保從命令行shell中導入sqlserver_ado的評論讓我在安裝了pywin32的Django 1.8.1,Python 3.5 Win32系統上走上了正確的道路。

SPOILER ALERT這隻會讓我的Django實例無誤地運行。我還沒有測試過ADO連接。

第一條錯誤消息是:

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

,我發現有一個名爲:django.db.backends.utils所以我複製它,它重命名爲django.db。 backends.util(沒有's')並且去了錯誤信息!

所以希望這不是太有害,我繼續在這一行故障排除。

下一個錯誤信息是:

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' 

我base.py改爲7號線到現在說:

#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 

沒錯,就是註釋掉壞線和添加四個獨立線。從Django中,3號線,在 後來我得到這個錯誤:

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

文件 「\程序文件(x86)\ Python35-32 \ LIB \站點包\ sqlserver_ado \ introspection.py C」。 db.backends進口BaseDatabaseIntrospection 導入錯誤:無法導入名稱 'BaseDatabaseIntrospection'

,所以我換了3號線到現在閱讀:

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

等爲creation.py:

from django.db.backends.base.creation import BaseDatabaseCreation 

爲operations.py:

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

爲schema.py:

from django.utils.log import getLogger 

希望這可以幫助別人。希望ADO模塊實際連接到某個東西。

-Sean

+0

剛剛有完全相同的問題。全新安裝django,pywin32和django-mssql,我已經落在第一個障礙。這是一個錯誤嗎?我正在使用python 2.7 – 2016-05-16 10:35:37

+2

'從日誌導入getLogger'完成了最後一部分的工作 – 2016-05-16 12:57:59