将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。在
- 项目
标签: