创建Django数据库模型时出现排序错误



我已经学习了philly和其他人的各种教程,用django-mssql后端设置django,但运气不佳。我认为连接正在工作,但当它试图解析表时,我会遇到一个无法克服的排序规则错误。我正在运行的规范如下:

  • django-mssql后端:2.8.1
  • django:3.2
  • pyodbc:4.0.30
'server':{
'ENGINE': 'sql_server.pyodbc',
'NAME': 'database',
'USER': 'username',
'PASSWORD': 'password',
'HOST': 'hostname of server',
'PORT': '',
'OPTIONS': {
'driver': 'ODBC Driver 17 for SQL Server',
'unicode_results': True,
},
}

当我尝试运行迁移类创建者或:时

python manage.py inspectdb --database=server

我在输出中得到以下错误:

# This is an auto-generated Django model module.
# You'll have to do the following manually to clean this up:
#   * Rearrange models' order
#   * Make sure each model has one field with primary_key=True
#   * Make sure each ForeignKey and OneToOneField has `on_delete` set to the desired behavior
#   * Remove `managed = False` lines if you wish to allow Django to create, modify, and delete the table
# Feel free to rename the models, but don't rename db_table values or field names.
from django.db import models
# Unable to inspect table 'ADObjectMemberships'
# The error was: __new__() missing 1 required positional argument: 'collation'
# Unable to inspect table 'ADObjects'
# The error was: __new__() missing 1 required positional argument: 'collation'

我确信这是可能的,因为我安装了一个不同的venv,安装了django 1.8和旧的django pyodbc azure模块,它连接到表并提取它们的信息。我对它最大的问题是,无论我做什么来修复它,它都会在DB中剩下大约15个表时停止,并抛出内存错误

非常感谢您对这个问题的任何想法或帮助!

通过独立测试确认,该问题似乎是3.2版本中的一个错误,并将放入错误报告中。然而,我现在确实想出了一个变通办法,如下所示:

  • 创建新的临时虚拟环境
  • 安装django==3.0 pyodbc==4.0 django mssql后端==1.8
  • 在settings.py中为SQL Server创建数据库条目
  • 运行python manage.py inspectdb --database=yourentry > yourentry.py

一旦您为要在网站中使用的现有数据库创建了所有模型,您就可以获取每个entry.py文件,并将它们复制到子模型文件夹中,然后将它们导入到主models.py文件中。

当不再需要虚拟环境时,可以将其删除。

相关内容

  • 没有找到相关文章

最新更新