| Oracle(源) | 瀚高 PostgreSQL(目标) | |
|---|---|---|
| 地址 | 同事本地测试库 | 192.168.0.149:5866/highgo |
| Schema | SLAJ / SLAJ_UPDATE / SLAJ_PERSTEST / SLAJ_ROHS | slaj(153张空表已建好) |
| 工具 | ora2pg | psql / \COPY |
这 4 张表在多个 schema 里列数不同,需从各源取出后按 GUID 去重合并:
| 表名 | 数据源(按列数排序) | 合并优先级 |
|---|---|---|
| OBJ_HAZ | SLAJ(46列) > SLAJ_UPDATE(33列) > SLAJ_PERSTEST(31列) | 以 SLAJ 为准,其他 GUID 不存在时补充 |
| OBJ_HIDD | SLAJ_ROHS(32列) > SLAJ(32列) > SLAJ_PERSTEST(30列) | 列数相同,直接取 SLAJ |
| OBJ_ACCI | SLAJ_ROHS(30列) > SLAJ(28列) > SLAJ_PERSTEST(25列) | 以 SLAJ_ROHS 为准 |
| BIS_HIDD_RECT_ACCE | SLAJ_ROHS(16列) > SLAJ(15列) > SLAJ_PERSTEST(12列) | 以 SLAJ_ROHS 为准 |
合并 SQL 模板:
-- 从多个源合并,按 GUID 去重
INSERT INTO slaj.obj_haz
SELECT DISTINCT ON (guid) * FROM (
SELECT * FROM oracle_fdw.SLAJ.OBJ_HAZ
UNION ALL
SELECT * FROM oracle_fdw.SLAJ_UPDATE.OBJ_HAZ -- 结构不同,补缺失列
) t;
| 批次 | 内容 | 表数 |
|---|---|---|
| 1 | 基础主数据:ATT_ORG_BASE、ATT_PERS_BASE、ATT_AD_BASE | ~20 |
| 2 | 工程对象:ATTENG*、OBJ_ENG、OBJ_HAZ、OBJ_HIDD 等 | ~40 |
| 3 | 业务表:BIS*、REL* | ~80 |
| 4 | 系统配置:SYS*、COLL、IWHR_ | ~10 |
| 5 | 合并那 4 张重复表 | 4 |
| — | 后续补充:51 张无 DDL 表 | — |
| — | 最后:ATT_MED_BASE | 1 |
已在瀚高 slaj schema 建好 153 张表,全部空表,结构就绪。
如需重新建表:
psql -h 192.168.0.149 -p 5866 -U highgo -d highgo -f migration/output/schemas/slaj/all.sql
完整表清单和每张表的源 schema 见 migration/output/table-final.json。