为什么python manage.py sql polls有错误?

时间:2013-11-28 12:53:14

标签: python sql django sql-server-2012

我使用django。

我在这个文件models.py中创建了这样的模型:

from django.db import models

class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')

class Choice(models.Model):
    poll = models.ForeignKey(Poll)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

我像这样更改此文件settings.py

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'polls',
)

我在SQL Server 2012

上更改mu数据库
DATABASES = {
    'default': {
        'NAME': 'DjangoFirst',
        'ENGINE': 'sqlserver_ado',
        'HOST': 'PCClient',
        'USER': 'sa',
        'PASSWORD': 'sa',
    }
}

Command prompt

中执行此命令时
python manage.py sql polls

我收到此错误:

django.core.exceptions.ImproperlyConfigured: 'sqlserver_ado' isn't an available
database backend.
Try using 'django.db.backends.XXX', where XXX is one of:
    u'mysql', u'oracle', u'postgresql_psycopg2', u'sqlite3'
Error was: No module named sqlserver_ado.base

什么是错的?

3 个答案:

答案 0 :(得分:1)

您应该选择所需的后端模块(请参阅命令行中的所有可用模块)。纠正这一行:

ENGINE = 'postgresql_psycopg2' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'

答案 1 :(得分:1)

错误消息似乎非常明确:您的默认数据库设置要求找不到的django数据库后端 - 它不存在或未安装,或者您没有将正确的python限定名称传递给后端。

答案 2 :(得分:1)

最后我找到了答案。

我最常使用支持Django的另一版SQL Server 2012 并在我的Python中加载。

我认为django-mssql 1.4rc2对我的目的有好处。

支持Django及更高版本的SQL Server 2005"Python: Package Index > django-mssql"

但是,我无法使用Django 1.6并连接到SQL Server 2012