将Django项目从MySQL迁移到Oracle

将Django项目从MySQL迁移到Oracle,mysql,django,oracle,ora-00942,ora-00001,Mysql,Django,Oracle,Ora 00942,Ora 00001,我有一个Django1.1项目,它与遗留的MySQL数据库一起工作。 我正在尝试将这个项目迁移到Oracle(xe和11g)。 我们有两个迁移选项: -使用SQL developer创建迁移SQL脚本。 -使用Django夹具 使用sql developer的sql脚本创建的架构与从syncdb创建的架构不匹配。例如,Django需要时间戳列,而SQLDeveloper创建日期列 将syncdb与Django fixture一起使用可能会很好,但是在尝试将MySQL fixture加载到Orac

我有一个Django1.1项目,它与遗留的MySQL数据库一起工作。 我正在尝试将这个项目迁移到Oracle(xe和11g)。 我们有两个迁移选项: -使用SQL developer创建迁移SQL脚本。 -使用Django夹具

使用sql developer的sql脚本创建的架构与从syncdb创建的架构不匹配。例如,Django需要时间戳列,而SQLDeveloper创建日期列

将syncdb与Django fixture一起使用可能会很好,但是在尝试将MySQL fixture加载到Oracle中时,在使用syncdb之后,我得到: IntegrityError:ORA-00001:违反了唯一约束(USER.SYS\u C004253)

如何找到造成完整性错误的部件

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

  • 连接到MySQL时转储所有内容: python manage.py dumpdata>fixture.json

  • 创建了具有空架构的新Oracle用户,并将数据库连接切换到Oracle(未执行syncdb)

  • 通过以下方式将数据加载到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'
    
    连接系统/
    从dba\u cons\u列中选择表名称、列名称
    其中约束名称='SYS\U C004253'和所有者='USER'
    
    这就是我得到的结果:表\u名称----------------------------------------------------------------------列\u名称---------------------------------------------身份验证\u权限内容\u类型\u ID身份验证\u权限代码名称尝试所有\u CONS\u列,因为听起来您是从不同的位置查询的用户/方案您的建议让我想到删除数据库中的所有关系。谢谢