将MySQL和Post SQL迁移到Oracle

cbl-migrator的Python项目详细描述


CBL迁移器

将基于SQL的小型数据库SQL和基于SQL的数据库迁移到SQL。用于ChEMBL转储生成过程。在

要将其用作Python库,请执行以下操作:

fromcbl_migratorimportDbMigratororigin='oracle://{user}:{pass}@{host}:{port}/{sid}?encoding=utf8'dest='postgresql://{user}:{pass}@{host}:{port}/{dbname}?client_encoding=utf8'migrator=DbMigrator(origin,dest,['excluded_table1','excluded_table2'],n_workers=4)migrator.migrate()

直接从命令行:

^{pr2}$

它的作用(按事件顺序)

  • 使用每个字段的dest类型将数据从最接近的表复制到源。除了pk之外,没有其他约束最初被复制。在
  • 表内容从源表迁移到目标表。平行的。在
  • 如果数据迁移成功,它将首先生成约束,然后生成索引。将跳过具有先前创建的UK的字段中的任何索引(UK作为唯一索引实现)。在
  • 每次无法迁移对象时,它都会记录下来,例如(psycopg2.OperationalError) index row size 2856 exceeds maximum 2712 for index.

它不能做什么

  • 它不会迁移任何没有PK的表。可能与不带PK的表挂起,并且包含另一个表中引用为FK的UK字段。在
  • 它不尝试迁移服务器默认值。在
  • 它不设置自动增量字段。在
  • 它不尝试迁移触发器或过程。在

SQLite公司

SQLite不能:

  • 并发写入
  • 更改表添加约束

所以迁移到它时只使用一个核心。所有约束在生成目标表时生成,并按正确的FKs顺序在表中插入行。在

MySQL数据库

clob被迁移到LONGTEXT。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java SimpleCursorAdapter删除值   java结束while循环条件   java检查设备是否连接到特定网络   java组织。冬眠MappingException找不到逻辑名称为annotation getter的列   为什么java邮件中会抛出此异常?   加载SDK时发生java Eclipse错误   返回奇怪输出的Java数组   JavaXStream和对象类序列化   将枚举列表传递给namedQuery后出现java非法转换异常。Hibernate中的setParameter()   java Android studio不允许我在字符串上使用开关?   有没有办法从Java程序访问存储在Chrome中的cookie   java在枚举中构造实例而不修改枚举类   java Blackberry JDE FieldChangeListener   java修复错误:未报告的异常InterruptedException   java Spring数据JPA:findAll(具有规范和可分页)在计数查询中失败