自省Bug在数据库级别而不是模式L上寻找Django_迁移

2024-04-28 06:30:24 发布

您现在位置:Python中文网/ 问答频道 /正文

更新6:在讨论了IRC#django问题之后,我认为django-pyodbc-azure正在自省数据库,并在数据库级别而不是模式级别寻找{}。因此,它在数据库级别(从原始应用程序)找到它,因此无法创建它。这可能是django-pyodbc-azure自省中的一个错误。在

更新5:我已经对模式进行了三次检查,除了名称之外,它们都是相同的。我还将django-pyodbc-azure和{}更新到最新的1.11版本。我不知所措。在

更新4:我在新模式中添加了一个名为django_migrations的表,错误更改为invalid column name 'app'。因此,看起来这些表最初应该在那里。然而,正如我最初的问题中所提到的,这是不可能的,而不是过去是如何做到的。在

更新3:除了原始项目的模式(已经有表,包括django_迁移),没有其他模式可以工作。创建该模式时,在运行python manage.py runserver之前,它没有任何表。在

更新2:模式差异是根本问题。我将原始用户的默认模式更改为希望新应用程序使用的新默认模式,并且发生了相同的错误。为什么一种模式有效,另一种模式不起作用?在

更新:这似乎是不同用户的问题。两个用户具有相同的SQL Server权限。每个用户都有一个为此目的创建的不同的默认架构。原始项目的用户在数据库中已经有表(包括django_迁移)。在

原创:

Python:3.6.4

丹戈:1.11.9

django-pyodbc-azure:1.11.9

{{cdango>有一个项目。此项目在conda环境中运行,该环境包括连接到sqlserver的django-pyodbc-azure。在

对默认设置所做的唯一更改如下:

  1. myApp.apps.MyAppConfig添加到INSTALLED_APPS
  2. DATABASES改为:

    DATABASES = {
    'default': {
        'ENGINE': 'sql_server.pyodbc',
        'HOST': 'hostname',
        'NAME': 'databasename',
        'USER': 'username',
        'PASSWORD': 'password',
        'OPTIONS': {
            'driver': 'SQL Server Native Client 11.0'
        },
    },
    }
    

当我试图运行python manage.py runserver时,出现以下错误:

^{pr2}$

为什么会出现此问题?我如何解决它?它似乎在数据库中寻找django_migrations,但尚未创建表。实际上,无法创建表,因为python manage.py makemigrations会导致相同的错误。在

这是我建立的第二个django项目。第一个在相同的DATABASES设置下运行(除了作为不同的用户获得不同的默认模式)和相同的环境。在


Tags: 项目django用户namepy数据库应用程序manage