【发布时间】:2022-01-22 14:30:05
【问题描述】:
我正在使用 Django 和 Oracle,我必须使用另一个 Scehma 中的一些表
class ModelTable1(models.Model):
official_id = models.CharField(db_column="ID_OFFICIAL", primary_key=True, max_length=20)
field_1 = models.CharField(max_length=25, db_column="COLUMN_X", blank=True, null=True)
field_2 = models.CharField(max_length=25, db_column="COLUMN_Y", blank=True, null=True)
class Meta:
db_table = '"SCHEMAX"."TABLE1"'
default_permissions = []
managed = False
当我尝试与架构中的模型建立关系并运行迁移时,出现以下错误: django.db.utils.DatabaseError: ORA-02267: 列类型与引用的列类型不兼容
我的模型定义是:
class ModelTable2(AuditDataMixin):
id = models.AutoField(db_column='ID', primary_key=True)
official_id = models.ForeignKey(
ModelTable1, models.DO_NOTHING, db_column="ID_OFFICIAL"
)
status = models.CharField(db_column='ESTADO', max_length=2, blank=True, null=True)
class Meta:
db_table = 'TABLE2'
default_permissions = []
当我去表时,我可以看到问题,SCHEMAX.Table1.ID_OFFICIAL 是 Varchar2(20) 类型,MYSCHEMA.Table2.ID_OFFICIAL 是 NVARCHAR2(20) 类型。
当我运行迁移时,我能做些什么而不是像 Varchar2 一样创建 FK?
谢谢!!
【问题讨论】:
标签: python django oracle django-models