我正在尝试使用dms启用复制,将auroramysql示例作为源,将redshift示例作为目标。在布尔列上复制失败。我已经在mysql示例中将布尔列声明为位(1)。根据文档,mysql中的布尔列应定义为位:
https://docs.aws.amazon.com/dms/latest/userguide/chap_source.mysql.html#chap_source.mysql.datatypes
如果我删除布尔列,它就会工作。我还尝试将列定义为布尔值。这也不管用。
这就是我得到的错误:
2018-08-26t16:59:19[target\u apply]e:retcode:sql\u error sqlstate:42804 nativeerror:30消息:[amazon][amazon redshift](30)尝试执行查询时出错:[sqlstate 42804]错误:列“state”的类型为boolean,但表达式的类型为character variable,提示:您需要重写或强制转换表达式[1022502](银币:4428)
2条答案
按热度按时间rqmkfv5c1#
我陷入了同样的问题,但我迁移了我的基地,所以我解决了一个后脚本,可能可以帮助你。此外,您还可以使用dms事件通知sms,然后调用lambda来实现这一点。
使用node只需运行file.js init()
oewdyzsn2#
这是dms的一个bug。这只在正在进行的复制期间发生,而不是在满负载时。在从auroramysql复制到redshift的过程中,布尔值被强制转换为varchar,从而导致上面的错误。