は、ここでこの質問への「現代」の答えですです。別のサーバで動作するMS SQL Server 2017に接続するUbuntu 16.04サーバにDjango 1.11を正常にデプロイしました。
まず、ネイティブMS ODBCドライバ "SQL Server用のODBCドライバ17" をインストールします。
# https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server#ubuntu-1404-1604-and-1710
sudo su
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list
apt-get update
ACCEPT_EULA=Y apt-get install msodbcsql
apt-get install unixodbc-dev
# test you can actually get to port 1433 on the server that is running MS SQL:
nc -z -v -w5 host.where.sql.server.is.running.com 1433
# add /opt/mssql-tools/bin to your PATH in .bash_profile, e.g.:
# PATH="$HOME/bin:$HOME/.local/bin:/opt/mssql-tools/bin:$PATH"
# source ~/.bash_profile
# now, test that you can actually connect to MS SQL Server:
sqlcmd -S host.where.sql.server.is.running.com -U db_username -P db_password
第二に、あなたはpip install
これらのモジュールを確認してください。
# https://github.com/michiya/django-pyodbc-azure
django-pyodbc-azure==1.11.9.0
# https://github.com/mkleehammer/pyodbc/wiki
pyodbc==4.0.22
第三に、データベースのエントリを変更しますあなたのDjangoのsettings.py
:
DATABASES = {
'default': {
'ENGINE': 'sql_server.pyodbc',
'NAME': 'db_name',
'USER': 'db_username',
'PASSWORD': 'db_password',
'HOST': 'host.where.sql.server.is.running.com',
'PORT': '1433',
'OPTIONS': {
'driver': 'ODBC Driver 17 for SQL Server',
},
},
}
私は省略しています彼は私の設定(nginx、Gunicorn、Django RESTフレームワークなど)の残りの部分ですが、これはこの回答の範囲外です。
「adodbapi」をありがとう - これは私のための新しいものでした。 –
django-mssqlは、adodbapiのフォークを使用し、ストアドプロシージャをサポートしています。 – Manfre
SQLServerのストアドプロシージャから結果を取得するには、次のように呼び出します。 'cursor.execute( 'DECLARE @results int; EXEC @ results = spMyProc; SELECT @results')' –