2012-03-30 16 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のためのwikiには設定がに似たファイルのセットアップに言います利用可能なデータベースバックエンドではありません。 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やissueにも何もないようです。

また、他のドキュメントがあれば教えてください。

EDIT:djangoアプリケーションはUbuntuサーバー上で動作しています。

+0

外部ファイルをDjangoディレクトリにコピーしません。いい考えではない。しかし、おそらくあなたの設定ファイルのどこかにバックエンドをインポートする必要があります。たぶん 'mssql import *'を試してみませんか? –

+0

Django 1.4にアップグレードする場合は、django-mssql v1.1にアップデートする必要があります。 'pip install django-mssql == 1.1' – Manfre

+0

1.4で動作するように更新されてうれしく思いました – rjbez

答えて

5

"sqlserver_ado"をPythonシェルからインポートできることを確認したいと思うでしょう。

あなたのPATH上のフォルダsqlserver_adoどこかを入れて、私はREADME.txtを見てみましょう

\ \サイト・パッケージに地雷を置きます。

エンジンは、設定はあなたが依存PyWin32をインストールする必要がsettings sample page.

+0

これはやっているようでした...私が持っていたドキュメントにはtid-bitがありませんでした。ありがとう。 – rjbez

+0

もう一つ考慮すべきことは、pywin32への更新です。 http://stackoverflow.com/questions/4145079/importerror-no-module-named-pythoncom –

1

で行われる方法と同様の「sqlserver_ado」に設定することにしたいん。 Pythonのバイナリページからインストールすることもできます。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で動作するはずです。だから、これはdjango-mssqlの代わりに、SQL Server 2008 R2のサポートを必要とする人にとっては良い選択です。

5

コマンドシェルから "import sqlserver_ado"を確認したDustinのコメントは、pywin32がインストールされたPython 3.5 Win32システムのDjango 1.8.1で正しいパスを辿ることができました。

スポイラーALERTこれはエラーなしで実行するために私のDjangoのインスタンスを取得します。私はまだADO接続をテストしていません。私が得た

最初のエラーメッセージが表示されました:

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

と私はと呼ばれるファイルがあるが見つかりました:はので、私はそれをコピーしてdjango.dbにそれを改名さdjango.db.backends.utilsが。 backends.util( 'なし')と離れて、エラーメッセージが表示されました!

これがあまりにも有害ではないことを望み、私はこのトラブルシューティングの行を続けました。

私が得た次のエラーメッセージが表示されました:

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 

はい、それは悪い行をコメントアウトし、別の4を追加していますライン。ジャンゴから で、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に\のsite-packages \ 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 

:schema.pyため

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

from django.utils.log import getLogger 

が、これは誰かに役立ちます願っています。 ADOモジュールが実際に何かに接続されることを願っています。

-ean

+0

この全く同じ問題がありました。 django、pywin32、django-mssqlを新しくインストールし、最初のハードルに落ちました。これはバグですか?私はPython 2.7を使用しています –

+2

'ロギングからインポートgetLogger'最後の部分で仕事をしました –