繁体   English   中英

将Django项目从MySQL迁移到Oracle

[英]Migrate a Django project from MySQL to Oracle

我有一个与旧版MySQL数据库配合使用的Django1.1项目。 我正在尝试将此项目迁移到Oracle(xe和11g)。 迁移有两种选择:-使用SQL开发人员创建迁移sql脚本。 -使用Django固定装置。

使用来自sql developer的sql脚本创建的架构与通过syncdb创建的架构不匹配。 例如,Django期望TIMESTAMP列,而sql开发人员创建DATE列。

将syncdb与Django夹具一起使用可能很棒,但是当尝试将MySQL夹具加载到Oracle中时,在使用syncdb之后,我得到:IntegrityError:ORA-00001:违反了唯一约束(USER.SYS_C004253)

我如何找到造成完整性错误的部分?

更新:按照Django邮件列表中的建议,我尝试了:

  1. 在连接到MySQL时转储所有内容:python manage.py dumpdata> Fixture.json

  2. 使用空模式创建了一个新的Oracle用户,并将数据库连接切换到Oracle(未执行syncdb)

  3. 使用以下命令将数据加载到Oracle:python manage.py loaddata Fixture.json

使用loaddata时没有出现错误,但是在运行服务器并导航到localhost:8000时出现错误:ORA-00942:表或视图不存在

谢谢

您可以查询oracle信息模式(称为Oracle Datadictionary)以查询所有表上的约束列表,以标识表名和该约束的列。

select TABLE_NAME, COLUMN_NAME from user_cons_columns where CONSTRAINT_NAME = 'SYS_C004253'

更新资料

由于安全性要求,数据字典分为不同的部分。 用户A无法看到用户B的表和约束。

如果找不到信息,则可以使用具有全局访问权限的dba用户帐户,并查询数据字典的dba部分。

connect system/<the_secret_password>
select TABLE_NAME, COLUMN_NAME from dba_cons_columns 
where CONSTRAINT_NAME = 'SYS_C004253' and OWNER = 'USER'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM