我一生都试图避免使用微软技术进行开发,但也许是对我过去最大的罪恶的惩罚,我现在不得不使用它们。
我在python 2.7上开发一个django应用程序,作为web应用程序部署在azure上。我需要运行migrate来创建初始数据库。我必须在我正在开发的机器上执行此操作,这是一台Windows 7笔记本电脑。达到目的;这是我的数据库设置:
DATABASES = {
'default': {
'ENGINE': 'sql_server.pyodbc',
'NAME': 'mydbname',
'USER': 'mydbuser',
'PASSWORD': 'mypass',
'HOST': 'mydbinstance.database.windows.net',
'PORT': '1433',
'OPTIONS': {
'driver': 'SQL Server Native Client 11.0',
'MARS_Connection': 'True',
}
}
}
当我将应用程序部署到azure时,应用程序可以使用此配置连接到数据库。所以我想我需要能够以完全相同的配置连接到数据库。我已经安装了pyodbc,django-pyodbc-azure模块,并安装了SQL Server Native Client 11.0 ODBC驱动程序。但是当我跑步时
python manage.py migrate
我收到以下错误消息:
django.db.utils.Error: ('IM002', [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0)) (SQLDriverConnect)')
通常我会先说这可能是我的django设置有问题,但我可以确认azure上的应用程序可以使用相同的配置连接到同一个db,所以我认为这是我本地的一个问题组态。可能导致这种情况的原因是什么?
答案 0 :(得分:2)
我似乎需要在本地计算机上的“管理服务”的“数据源”选项卡下创建一个dsn。使用SQL Server Native Client 11.0创建dsn解决了连接问题。