【问题标题】:django tutorial: testcase failed to create testuser on oracle express databasedjango 教程:testcase 无法在 oracle express 数据库上创建 testuser
【发布时间】:2020-01-17 00:43:46
【问题描述】:

注意:我已经尝试过error: ORA-65096: invalid common user or role name in oracle的解决方案

我正在学习来自 django a link 的教程。当我尝试使用“py manage.py test polls”测试测试用例时,我得到了这个:

    C:\Users\user\Documents\user_django_projects\mysite>py manage.py test polls
    Creating test database for alias 'default'...
    Failed (ORA-01543: tablespace 'TEST_SYSTEM' already exists)
    It appears the test database, test_system, already exists. Type 'yes' to delete it, or 'no' to cancel: yes
    Destroying old test database for alias 'default'...
    Creating test user...
    Failed (ORA-65096: invalid common user or role name)
    Got an error creating the test user: ORA-65096: invalid common user or role name

django 似乎无法在我的本地 oracle express 数据库上创建临时用户。有人可以帮我解决吗?

【问题讨论】:

  • @KostasCharitidis 嗨,我已经看到了,但我不确定如何解决这个问题。我尝试了以下操作:1)打开 CMD 类型 sqlplus 并按回车键 2)从系统登录连接 3)运行命令:alter session set "_ORACLE_SCRIPT"=true;
  • @KostasCharitidis 但它仍然失败。我不确定我需要在测试类中更改什么,以便 django 自动化测试修复它。

标签: django oracle testcase


【解决方案1】:

以 sys 身份连接到 sqlplus

sqlplus "sys AS SYSDBA"

创建一个 PDB 帐户

SQL> alter session set container = XEPDB1;

Session altered.

SQL> create user djangousername identified by djangopassword;

User created.

SQL> grant all privileges to django;

Grant succeeded.

如果您使用 Oracle 12,请将 XEPDB1 更改为 ORCLPDB

现在您可以使用上面的用户名和密码使用 sqldeveloper 连接到数据库,enter code here服务名称XEPDB1ORCLPDB

在 mysite/mysite/settings.py 更改您的数据库设置

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.oracle',
        'NAME': 'localhost:1521/XEPDB1',
        'USER': 'djangousername ',
        'PASSWORD': 'djangopassword',
    }
}

现在运行

python manage.py migrate
python manage.py test polls

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-26
    • 2022-10-16
    • 2017-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-24
    • 2011-05-19
    相关资源
    最近更新 更多