【发布时间】:2016-03-14 13:22:01
【问题描述】:
我想在 Azure 上创建一个 django web。
我一整天都在尝试将我的模型类连接到 Azure 上现有的 MSSQL 数据库。
还是不行。我的手已经试过了。
我列出了我的步骤,希望有人帮助我,非常感谢!
步骤 1。安装依赖库
sudo pip install --upgrade pip
sudo pip install django-pyodbc
sudo pip install django-sqlserver
sudo pip install django-mssql
sudo pip install django-pyodbc-azure
brew install freetds
brew install freetds --with-unixodbc
步骤 2。配置编写
~/.bash_profile
#ODBC
export ODBCSYSINI=/usr/local/opt/unixodbc/etc
export ODBCINI=/usr/local/opt/unixodbc/etc/odbc.ini
/etc/odbcinst.ini
[FreeTDS]
Driver=/usr/local/lib/libtdsodbc.so
Setup=/usr/local/lib/libtdsodbc.so
Server={host}
UsageCount=1
Port=1433
Database={db name}
User={user name}
Password={password}
TDS_Version=7.2
client_charset=utf-8
/etc/odbc.ini
[FreeTDS]
Driver = FreeTDS
ServerName = {hostname}
Database = {db name}
UserName = {user name}
Password = {password}
Port = 1433
Protocol = 7.2
TDS_Version = 8.0
第 3 步。尝试连接数据库。
tsql -S FreeTDS -p 1433 -U {user name} -P {password}
It’s ok to connect to ‘INFORMATION_SCHEMA’ DB。
But when I try:
tsql -S FreeTDS -p 1433 -U {user name} -P {password} -D {database name}
I had problems:
Msg 4075 (severity 16, state 1) from {hostname} Line 1:
"The USE database statement failed because the database collation Chinese_Traditional_Stroke_Order_100_CS_AS_WS is not recognized by older client drivers. Try upgrading the client operating system or applying a service update to the database client software, or use a different collation. See SQL Server Books Online for more information on changing collations."
Msg 18456 (severity 14, state 1) from {hostname} Line 1:
"Login failed for user ‘{user name}’.”
Error 20002 (severity 9):
Adaptive Server connection failed
There was a problem connecting to the server
If I try “tsql -S FreeTDS -p 1433 -U {user name} -P {password}” and under,
1> USE somedb
2> go
Msg 40508 (severity 16, state 1) from {hostname} Line 1:
"USE statement is not supported to switch between databases. Use a new connection to connect to a different database."
problems again. (I found some pages to says: USE is not work at a MSSQL DB on Azure)
第四步。试试:python manage.py inspectdb > models.py
django.db.utils.Error: ('08001', '[08001] [unixODBC][FreeTDS][SQL Server]Unable to connect to data source (0) (SQLDriverConnect)')
第五步。尝试模型
settings.py
DATABASES = {
'default': {
'ENGINE': 'sql_server.pyodbc',
'NAME': ‘{database name}’,
'USER': ‘{user name}’,
'PASSWORD': ‘{password}’,
'HOST': ‘{hostname}’,
'PORT': '1433',
'OPTIONS': {
'driver': 'FreeTDS',
},
}
}
and
$python manage.py shell
>>> from app.models import {ModelName}
>>> {ModelName}.objects.all()
Error: ('08001', '[08001] [unixODBC][FreeTDS][SQL Server]Unable to connect to data source (0) (SQLDriverConnect)')
(again, no surprise.)
环境:
- Python:2.7.10
- Django:1.9.4(最终版)
- MS-SQL 服务器版本:V12
- 操作系统:Mac OSX 10.11.3
- FreeTDS:0.95.80
-
其他
pyobjc-core (2.5.1) pyobjc-framework-Accounts (2.5.1) pyobjc-framework-AddressBook (2.5.1) pyobjc-framework-AppleScriptKit (2.5.1) pyobjc-framework-AppleScriptObjC (2.5.1) pyobjc-framework-Automator (2.5.1) pyobjc-framework-CFNetwork (2.5.1) pyobjc-framework-Cocoa (2.5.1) pyobjc-framework-Collaboration (2.5.1) pyobjc-framework-CoreData (2.5.1) pyobjc-framework-CoreLocation (2.5.1) pyobjc-framework-CoreText (2.5.1) pyobjc-framework-DictionaryServices (2.5.1) pyobjc-framework-EventKit (2.5.1) pyobjc-framework-ExceptionHandling (2.5.1) pyobjc-framework-FSEvents (2.5.1) pyobjc-framework-InputMethodKit (2.5.1) pyobjc-framework-InstallerPlugins (2.5.1) pyobjc-framework-InstantMessage (2.5.1) pyobjc-framework-LatentSemanticMapping (2.5.1) pyobjc-framework-LaunchServices (2.5.1) pyobjc-framework-Message (2.5.1) pyobjc-framework-OpenDirectory (2.5.1) pyobjc-framework-PreferencePanes (2.5.1) pyobjc-framework-PubSub (2.5.1) pyobjc-framework-QTKit (2.5.1) pyobjc-framework-Quartz (2.5.1) pyobjc-framework-ScreenSaver (2.5.1) pyobjc-framework-ScriptingBridge (2.5.1) pyobjc-framework-SearchKit (2.5.1) pyobjc-framework-ServiceManagement (2.5.1) pyobjc-framework-Social (2.5.1) pyobjc-framework-SyncServices (2.5.1) pyobjc-framework-SystemConfiguration (2.5.1) pyobjc-framework-WebKit (2.5.1) pyodbc (3.0.10) django-mssql (1.6.2) django-pyodbc-azure (1.9.3.0) django-sqlserver (1.7)
【问题讨论】:
标签: python sql-server django azure model