python - 使用 native Windows 数据库驱动程序在 Windows 上运行 django 迁移以获取远程 mssql 数据库

标签 python sql-server django azure

我一生都试图避免使用微软技术进行开发,但也许作为对我过去犯下的最大罪过的惩罚,我现在被迫使用它们。

我正在 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 上的应用程序可以使用相同的配置连接到相同的数据库,所以我认为这是我本地的问题配置。可能是什么原因造成的?

最佳答案

看来我需要在本地计算机上的管理服务的“数据源”选项卡下创建一个 dsn。使用 SQL Server Native Client 11.0 创建 dsn 解决了连接问题。

关于python - 使用 native Windows 数据库驱动程序在 Windows 上运行 django 迁移以获取远程 mssql 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33775255/

相关文章:

python - 找到两个 DNA 字符串之间的汉明距离

sql-server - 有没有办法将数据从旧的 MS Access 数据库导入到新的 SQL Server?

c# - ''(过程)的请求失败”,因为它是一个表对象 - 错误

django - 按相关模型子集的最新实例对 Django 查询集进行排序

python - 根据模型中的值创建 URL

python - VS Code Python + Black 格式化程序参数 - python.formatting.blackArgs

python - Tensorflow 到 ONNX 的转换

python - FastAPI 应用程序在本地运行但不在 Docker 容器中

sql - 在 SQL Server 2005 中保留计算的日期时间列

python - Django 迁移 : doesn't create tables