在生产中使用Django的Sql Server
有没有人有最近的经验与部署一个SQL Server数据库后端的Django应用程序? 我们的工作场所大量投资于SQL Server,如果没有足够开发的后端,它将不会支持Django。
我知道mssql.django-pyodbc和django-mssql作为非正式支持的后端。 这两个项目似乎只有一个人的贡献,这是一个有点担心,虽然贡献似乎有点规律。
是否有任何其他支持SQL Server的后端? 我在这里提到的两个“足够好”的生产? 你有什么经验?
如前所述,Django-pyodbc是一个很好的select。 PyODBC可能是Python最成熟的SQL Server库。
你唯一可能遇到的问题是pyodbc不能很好地支持存储过程(你可以调用它们,但是你没有办法从它们中获得结果)。 您可以使用pymssql 来调用它们,但是如果可能的话,我会尽量避免,因为它不支持标准的DB-API接口,并且可能会有所变化。 如果你需要这样做,你最好的select是直接使用adodbapi (它包含在python win32包中,你可能最终会安装它)。
我们公司正在生产中使用django-mssql。 我们也有一个使用mssql的现有系统。 对我个人而言,这是我做过的最好的devise决策,因为我现在可以使用django来提高生产力。
我提交了一个补丁,但是当我开始使用django-mssql并且进行了一两个星期的testing。从那以后(2008年10月),我们在django上运行了我们的系统并运行稳定。 我也尝试pyodbc,但我不喜欢太多。
我们正在运行一个修复系统,所有的交易都是通过这个系统运行40个大用户。 如果你有更多的问题,让我知道。
在Windows上安装django_mssql
后,我看到有这么多人遇到以下错误:
django.core.exceptions.ImproperlyConfigured:'sqlserver_ado'不是一个可用的数据库后端。 尝试使用django.db.backends.XXX,其中XXX是以下之一: 'dummy','mysql','oracle','postgresql_psycopg2','sqlite3' 错误是:没有名为sqlserver_ado.base的模块
解决scheme是安装以下插件:
还没有用于生产,但我最初的经验与django-mssql已经相当稳固。 所有你需要的是Python的Win32扩展,并获得sqlserver_ado模块到你的Pythonpath。 从那里,你只需使用sql_server.pyodbc
作为你的DATABASE_ENGINE
。 到目前为止,我还没有注意到任何缺失,但是我还没有完全抨击它。
这些天
- django-mssql :在
./manage.py migrate
时导致错误“NoneType not callable” - avidal / django-pyodbc : 无人维护。 取而代之:
- django-pyodbc :不支持python 3
- django-pyodbc-azure :为我工作到目前为止
编辑:这里是包的版本
Django==1.11.6 django-mssql==1.8 pyodbc==4.0.19 django-pyodbc==1.1.1 django-pyodbc-azure==1.11.0.0