在Azure和Django上不工作的迁移

baubqpgj  于 2023-11-20  发布在  Go
关注(0)|答案(1)|浏览(116)

我在我的Azure资源组上遇到了一些Django的问题。我的软件的着陆页工作正常,但是当我尝试登录时,它不工作,我得到的错误是由“帐户应用程序”引起的。

Error:
relation "accounts_user" does not exist
LINE 1: ...s_user"."admin", "accounts_user"."timestamp" FROM "accounts_...

字符串
我已经在SSH上执行了迁移,但我认为它们没有被正确迁移,因为即使我“创建一个超级用户”,我刚刚创建的用户也无法登录并抛出相同的错误。


的数据
虽然数据库的变量似乎被正确发送,正如我在本地变量上看到的错误:

ignored_wrapper_args    
(False,
 {'connection': <django.db.backends.postgresql.base.DatabaseWrapper object at 0x7a01ddf85cc0>,
  'cursor': <django.db.backends.postgresql.base.CursorDebugWrapper object at 0x7a01d58667a0>})
params  
('USER EMAIL',)
self    
<django.db.backends.postgresql.base.CursorDebugWrapper object at 0x7a01d58667a0>
sql 
('SELECT "accounts_user"."id", "accounts_user"."password", '
 '"accounts_user"."last_login", "accounts_user"."email", '
 '"accounts_user"."full_name", "accounts_user"."active", '
 '"accounts_user"."staff", "accounts_user"."admin", '
 '"accounts_user"."timestamp" FROM "accounts_user" WHERE '
 '"accounts_user"."email" = %s LIMIT 21')


并且:

DATABASES   
{'default': {'ATOMIC_REQUESTS': False,
             'AUTOCOMMIT': True,
             'CONN_MAX_AGE': 0,
             'ENGINE': 'django.db.backends.postgresql',
             'HOST': 'MY HOST NAME.postgres.database.azure.com',
             'NAME': 'MY DATABASE NAME',
             'OPTIONS': {},
             'PASSWORD': '********************',
             'PORT': '',
             'TEST': {'CHARSET': None,
                      'COLLATION': None,
                      'MIGRATE': True,
                      'MIRROR': None,
                      'NAME': None},
             'TIME_ZONE': None,
             'USER': 'MY USERNAME'}}


有谁知道会发生什么吗?

mo49yndu

mo49yndu1#

您的Django迁移可能无法在Azure上工作的几个可能原因:

***数据库连接设置不正确:**请确保settings .py文件中的DATABASE设置对于Azure数据库是正确的。您可以在Azure门户中找到正确的连接字符串。
***未应用迁移。**Django迁移必须应用于数据库,以便反映模型的更改,并且sslmode=require

  • 要应用迁移,请从SSH终端运行以下命令:
python manage.py migrate

字符串

  • python manage.py migrate命令在我们的数据库中创建了一些默认表。其中包括来自referenceaccounts_user

要访问account_user,请参阅此链接:

对于上面的参考,django提供了一个内置的身份验证和权限系统,允许您验证用户凭据并定义每个用户可以执行的操作。

  • 身份验证系统以User模型为中心,该模型表示与您的站点交互的人员。
  • 可以将用户权限分配给特定用户和用户组。
  • Django为每个模型提供了一组默认权限,但您也可以创建自定义权限。
  • 可以使用has_perm()方法检查。

使用参考,我能够在Django应用程序中使用Azure PostgreSQL进行migrate
settings .py

DATABASES = {

'default':  {

'ENGINE':  'django.db.backends.postgresql',

'NAME':  os.environ.get('DBNAME'),

'HOST':  os.environ.get('DBHOST'),

'USER':  os.environ.get('DBUSER'),

'PASSWORD':  os.environ.get('DBPASS'),

}

}


x1c 0d1x的数据


相关问题