現在、C# で記述された asp.NET 内部 Web サイトを取得し、Django Web フレームワークでやり直しています。.NET サイトで現在使用されているすべてのデータ ソースを特定した後、Django フレームワーク内からそれらのデータベースに接続する機能の構成とテストを開始しました。
- プラットフォーム: アーチリナックス
- ジャンゴのバージョン: 1.3.1
- Python バージョン: 2.7
問題: デフォルト データベースとして定義されていないデータベースに接続しようとすると、接続できません。さらに、接続できないデータベースは、デフォルトでないと定義されている場合のみです。
この点をさらに説明するために、編集された例を示します。
DATABASES = {
'default': {
'ENGINE': 'postgresql_psycopg2',
'NAME': 'postgres',
'USER': 'postgres',
'PASSWORD': '',
'HOST': '',
'PORT': '',
},
'mssql': {
'ENGINE': 'sql_server.pyodbc',
'DATABASE_ODBC_DSN': 'name_of_sql_server',
'DATABASE_NAME': 'Logs',
'DATABASE_USER': r'user_name',
'DATABASE_PASSWORD': 'password',
'DATABASE_OPTIONS': {
'driver': 'sql_server_driver',
'dsn': 'MSSQL_Logs',
},
}
}
最初の既定のデータベース定義をコメント アウトし、mssql データベースの名前を既定に変更すると、次の方法で dbshell にアクセスできます。
manage.py dbshell
ただし、上記で定義されているように、mssql データベースに直接アクセスしようとすると、次のようになります。
manage.py dbshell mssql
エラーが発生します:
TypeError: handle() takes exactly 1 argument (7 given)
定義を適切に解析できないかのようです。したがって、私の質問は基本的に次のとおりです。データベースをペアにするときにデータベースを正しく定義していませんか?