当前位置: 首页 > 知识库问答 >
问题:

无法使用Django oracle12c在数据库中创建表

卢深
2023-03-14

我正在从事一个大学项目,我打算使用oracle数据库作为后端,我选择使用django作为编程语言。我已成功地将django与oracle 12c连接,并已安装了cx_oracle。但是当我尝试运行命令时

py manage.py migrate

出现以下错误。

Windows PowerShell版权所有(C)微软公司。版权所有。

PS C:\Users\Hp\Desktop\onlinepharma

上述异常是以下异常的直接原因:

回溯(最后一次调用):文件“manage.py”,第15行,从命令行执行(sys.argv)文件“C:\Users\Hp\AppData\Local\Programs\Python\Python37\lib\site packages\django\core\management\uuuuu init\uuuuuuuuuuu.py”,第381行,从命令行执行实用程序。execute()文件“C:\Users\Hp\AppData\Local\Programs\Python\Python37\lib\site packages\django\core\management\uu_init\u_.py”,第375行,在execute self中。fetch_命令(子命令)。从_argv self运行第316行的_argv(self.argv)文件“C:\Users\Hp\AppData\Local\Programs\Python37\lib\site packages\django\core\management\base.py”。执行(*args,**cmd\u options)文件“C:\Users\Hp\AppData\Local\Programs\Python37\lib\site packages\django\core\management\base.py”,第353行,执行输出=self。handle(*args,**options)文件“C:\Users\Hp\AppData\Local\Programs\Python\Python37\lib\site packages\django\core\management\base.py”,第83行,包装为res=handle\u func(*args,**kwargs)文件“C:\Users\Hp\AppData\Local\Programs\Python\Python37\lib\site packages\django\core\management\commands\migrams.py”,第203行,在handle fake_initial=fake_initial中,文件“C:\Users\Hp\AppData\Local\Programs\Python37\lib\site packages\django\db\migrations\executor.py”第117行处于迁移状态=self_迁移所有转发(state、plan、full\u plan、fake=fake、fake\u initial=fake\u initial)文件“C:\Users\Hp\AppData\Local\Programs\Python37\lib\site packages\django\db\migrations\executor.py”,第147行,迁移所有转发状态=self。apply_migration(state,migration,fake=fake,fake_initial=fake_initial)文件“C:\Users\Hp\AppData\Local\Programs\Python37\lib\site packages\django\db\migrations\executor.py”,第244行,在apply_migration state=migration中。在应用操作中应用(状态,模式编辑器)文件“C:\Users\Hp\AppData\Local\Programs\Python\Python37\lib\site packages\django\db\migrations\migration.py”,第124行。数据库转发(self.app\u标签、模式编辑器、旧状态、项目状态)文件“C:\Users\Hp\AppData\Local\Programs\Python\Python37\lib\site packages\django\db\migrations\operations\models.py”,数据库转发模式编辑器第91行。创建模型(模型)文件“C:\Users\Hp\AppData\Local\Programs\Python\37\lib\site packages\django\db\backends\base\schema.py”,第312行,在创建模型中。执行(sql、params或None)文件“C:\Users\Hp\AppData\Local\Programs\Python\Python37\lib\site packages\django\db\backends\base\schema.py”,在执行游标的第133行。执行(sql,params)文件“C:\Users\Hp\AppData\Local\Programs\Python\Python37\lib\site packages\django\db\backends\utils.py”,第100行,在execute return super()中。执行(sql,params)文件“C:\Users\Hp\AppData\Local\Programs\Python\Python37\lib\site packages\django\db\backends\utils.py”,第68行,执行返回self_使用包装器执行(sql,params,many=False,executor=self.\u execute)文件“C:\Users\Hp\AppData\Local\Programs\Python\Python37\lib\site packages\django\db\backends\utils.py”,第77行,使用包装器返回执行器(sql,params,many,context)文件“C:\Users\Hp\AppData\Local\Programs\Python37\lib\site packages\django\db\backends\utils。py”,第85行,在_executereturn self.cursor.execute(sql,params)文件“C:\Users\Hp\AppData\Local\Programs\Python\Python37\lib\site packages\django\db\utils”中。py”,第89行,在出口处提升dj_exc_值。使用exc_值文件“C:\Users\Hp\AppData\Local\Programs\Python\Python37\lib\site packages\django\db\backends\utils”中的回溯(回溯)。py”,第83行,在_executereturn self.cursor.execute(sql)文件“C:\Users\Hp\AppData\Local\Programs\Python37\lib\site packages\django\db\backends\oracle\base”中。py”,执行返回self.cursor.execute(查询,self.param_生成器(params))django.db.utils.DatabaseError:ORA-00955:name已被现有对象使用

这是我的模型。py文件

from django.db import models

# Create your models here.
class yoman(models.Model):
text=models.CharField(max_length=200)

但我已经使用sql命令行进行了检查,不存在这样的db表或视图。

p、 s:makemigrations命令工作正常,migratiosn文件也已创建。

共有1个答案

蓝鸿哲
2023-03-14

如果您编辑以下文件,您可以打印出sql查询:“C:\用户\HP\AppData\本地\程序\Python\Python37\lib\site-包\django\db\后端\oracle\base.py在第513行,在执行函数被调用之前添加:

print(f'query')

重新运行迁移,您可以看到无法运行的sql。删除或重命名数据库中的表/对象。

 类似资料:
  • 我无法在Spark数据库中创建H2OContext--使用PySparkling。它给出了以下错误。 代码:从pysparkling导入* 代码:导入H2O 代码:H2OConf=H2OConf(Sark) 代码:H2OConf.set(“spark.ui.enabled”,True) 代码:h2oContext=h2oContext.getorcreate(spark,h2oConf) 错误:j

  • 我安装了Oracle 19c数据库软件。我试图用脚本创建一个数据库;我创建了一个监听器和pfile(参数)文件。然后键入这个命令, -- 在此之后; -- 当我输入这些命令时,屏幕上只有“2”。然后,任何事情都不会发生。

  • 我想用mysql服务器中的这些信息创建一个名为dni的表。 失败的查询: 1.“创建表dni(id bigint not null,apellidos varchar(255),codigo_dni varchar(255),direccion varchar(255),fecha_nacimiento varchar(255),foto_perfil varchar(255),nombre va

  • 我想创建基于实体的数据库。配置: null null 由于某种原因,数据库的创建发生在事务中。我发现源代码负责,但我无法找出交易是如何启动的。我可以提供更详细的信息,但也许现在已经有人可以帮忙了。 编辑:persistence.xml

  • 问题内容: PostgreSQL似乎不允许创建名为“ user”的数据库表。但是MySQL将允许创建这样的表。 那是因为这是一个关键词吗?但是Hibernate无法识别任何问题(即使我们设置了PostgreSQLDialect)。 问题答案: 是保留字,通常不建议使用保留字作为标识符(表,列)。 如果您坚持要这样做,则必须将表名放在双引号中: 但是,在引用表时,您 总是 需要使用双引号。此外,表名

  • 看来PostgreSQL不允许创建名为'user'的数据库表。但MySQL将允许创建这样的表。 那是因为它是一个关键词吗?但是Hibernate无法识别任何问题(即使我们设置了PostgreSQL方言)。