python migration .py命令在django中失败



我试图使用VS代码设置我的环境,我注意到,当我运行python manage.py migrate命令时,我得到以下错误。这很奇怪,因为这个项目是新的,从我做的研究中,我注意到有些人因为改变了一些文件而出错,在我的情况下,我没有改变任何文件。这是一个新的清洁项目。

我所做的就是删除默认的SQL lite数据库,并用SQL server数据库配置代替它。我注意到创建了2个表,即django_content_type和django_migrations,然后该过程失败,是否有可能获得某种详细的日志,看看问题是什么?

我得到的错误详细信息如下。

(env) PS C:UsersUserDocumentsdjangofeaturedjangodeployment_reportingreporting_project> python manage.py makemigrations        
No changes detected
(env) PS C:UsersUserDocumentsdjangofeaturedjangodeployment_reportingreporting_project> python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial...Traceback (most recent call last):
File "C:UsersUserDocumentsdjangofeaturedjangodeployment_reportingreporting_projectmanage.py", line 22, in <module>
main()
File "C:UsersUserDocumentsdjangofeaturedjangodeployment_reportingreporting_projectmanage.py", line 18, in main
execute_from_command_line(sys.argv)
File "C:UsersUserDocumentsdjangofeaturedjangodeployment_reportingenvlibsite-packagesdjangocoremanagement__init__.py", line 419, in execute_from_command_line
utility.execute()
File "C:UsersUserDocumentsdjangofeaturedjangodeployment_reportingenvlibsite-packagesdjangocoremanagement__init__.py", line 413, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:UsersUserDocumentsdjangofeaturedjangodeployment_reportingenvlibsite-packagesdjangocoremanagementbase.py", line 354, in run_from_argv
self.execute(*args, **cmd_options)
File "C:UsersUserDocumentsdjangofeaturedjangodeployment_reportingenvlibsite-packagesdjangocoremanagementbase.py", line 398, in execute
output = self.handle(*args, **options)
File "C:UsersUserDocumentsdjangofeaturedjangodeployment_reportingenvlibsite-packagesdjangocoremanagementbase.py", line 89, in wrapped
res = handle_func(*args, **kwargs)
File "C:UsersUserDocumentsdjangofeaturedjangodeployment_reportingenvlibsite-packagesdjangocoremanagementcommandsmigrate.py", line 244, in handle
post_migrate_state = executor.migrate(
File "C:UsersUserDocumentsdjangofeaturedjangodeployment_reportingenvlibsite-packagesdjangodbmigrationsexecutor.py", line 117, in migrate
state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial)
File "C:UsersUserDocumentsdjangofeaturedjangodeployment_reportingenvlibsite-packagesdjangodbmigrationsexecutor.py", line 147, in _migrate_all_forwards
state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial)
File "C:UsersUserDocumentsdjangofeaturedjangodeployment_reportingenvlibsite-packagesdjangodbmigrationsexecutor.py", line 227, in apply_migration
state = migration.apply(state, schema_editor)
File "C:UsersUserDocumentsdjangofeaturedjangodeployment_reportingenvlibsite-packagesdjangodbmigrationsmigration.py", line 126, in apply
operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
File "C:UsersUserDocumentsdjangofeaturedjangodeployment_reportingenvlibsite-packagesdjangodbmigrationsoperationsmodels.py", line 528, in database_forwards     
alter_together(
File "C:UsersUserDocumentsdjangofeaturedjangodeployment_reportingenvlibsite-packagessql_serverpyodbcschema.py", line 156, in alter_unique_together
self.execute(sql)
File "C:UsersUserDocumentsdjangofeaturedjangodeployment_reportingenvlibsite-packagessql_serverpyodbcschema.py", line 861, in execute
sql = str(sql)
File "C:UsersUserDocumentsdjangofeaturedjangodeployment_reportingenvlibsite-packagesdjangodbbackendsddl_references.py", line 201, in __str__
return self.template % self.parts
KeyError: 'include'

我在我的设置文件中添加了以下内容:

DATABASES = {
'default': {
'ENGINE': 'sql_server.pyodbc',
'NAME': 'django_reporting',
'HOST': 'DESKTOP-OIDEV2',
'PORT': '',
'OPTIONS': {
'driver': 'ODBC Driver 17 for SQL Server',
},
},
} 

我在其他地方找到了这个问题的另一个答案,如果有帮助请告诉我c:

"我做了以下操作:

使用pip uninstall django-pyodbc或pip3 uninstall django-pyodbc

使用pip uninstall django-pyodbc-azure-2019或pip3 uninstall django-pyodbc-azure-2019 (for Linux)

我的问题已经解决,希望你的应用程序运行顺利。:-(">

我通常使用postgresql数据库,所以我个人从未见过这个问题。

多亏了ruffishkimbr,他的回答中有一个错别字,为了不让任何人感到困惑。我在这里张贴我所做的。首先,我运行的django版本是3.2.6

我所做的是按照ruffishkimbr的指示。运行

卸载pyodby
python -m pip uninstall pyodbc  

然后运行

安装django-pyodbc-azure-2019
python -m pip install django-pyodbc-azure-2019

最新更新