You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS DMS迁移PostgreSQL RDS时未迁移text字段问题咨询

AWS DMS迁移PostgreSQL RDS时text字段无数据的原因及CFT配置修复

可能的原因

  • 源端点连接属性未配置到位:AWS DMS对PostgreSQL的text类型处理需要特定参数支持,未开启相关属性会导致text字段数据无法被捕获或传输。
  • 任务表映射规则误过滤text字段:CFT配置的表映射中,可能存在列级筛选规则意外排除了text类型字段;或是列映射配置未明确包含text字段。
  • 旧版DMS复制实例兼容性问题:较早版本的DMS复制实例对PostgreSQL text类型的支持不完善,会导致数据迁移失败。

CFT JSON配置修改方案

1. 修正源端点的ExtraConnectionAttributes

在CFT的源PostgreSQL端点配置中,添加或调整ExtraConnectionAttributes参数,确保包含关键设置:

"SourceEndpoint": {
  "Type": "AWS::DMS::Endpoint",
  "Properties": {
    "EndpointType": "source",
    "EngineName": "postgres",
    "ExtraConnectionAttributes": "useUnicode=true;enableTextFormatting=true;",
    // 其他必填属性(如ServerName、Port、DatabaseName等)
  }
}
  • useUnicode=true:保证DMS正确处理Unicode编码的text字段数据。
  • enableTextFormatting=true:开启文本格式数据的解析,避免text字段被当作二进制数据或直接忽略。

2. 检查并修正表映射规则

在DMS任务的TableMappings配置中,确保没有排除text字段的规则:

  • 若使用selection-rules,确认无针对text列的过滤条件;
  • 若使用column-mappings,明确包含需要迁移的text字段,示例如下:
"TableMappings": "{
  \"rules\": [
    {
      \"rule-type\": \"selection\",
      \"rule-id\": \"1\",
      \"rule-name\": \"1\",
      \"object-locator\": {
        \"schema-name\": \"%\",
        \"table-name\": \"%\"
      },
      \"rule-action\": \"include\"
    },
    {
      \"rule-type\": \"column-mapping\",
      \"rule-id\": \"2\",
      \"rule-name\": \"2\",
      \"object-locator\": {
        \"schema-name\": \"your_schema\",
        \"table-name\": \"your_table\"
      },
      \"rule-action\": \"include\",
      \"column-mappings\": \"your_text_column, your_text_column\"
    }
  ]
}"

如果是全局包含所有列,确保column-mappings设置为*,不要手动排除text字段。

3. 升级复制实例版本

如果使用的是旧版DMS复制实例,建议升级到3.4.5及以上的兼容版本,新版本对PostgreSQL text类型的支持更稳定完善。

内容的提问来源于stack exchange,提问作者titan31

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 01:08:22