仕事でAWSのDatabase Migration Serviceを使用しようとした際にバグが発生したので、メモ。 (2018年2月27日現在)
DMSで他クラウド上に乗っているMySQLデータをRDSのAuroraへ移行しようとしたところTIMESTAMP型が下記のように移行されてしまう。
移行前
Column | Datatype | Value |
---|---|---|
date1 | TIMESTAMP | 0000-00-00 00:00:00 |
移行後
Column | Datatype | Value |
---|---|---|
date1 | TIMESTAMP | 1971-07-08 22:09:26 |
上記を回避するにはDMSの管理画面からターゲットエンドポイントにある「追加の接続属性」(コンソールだと、「アドバンスド」メニュー下にある)へ下記内容を追加する。
loadUsingCSV=N
もしすでに他の値が設定されている場合は、「;」をつけて保存する
parallelLoadThreads=1;loadUsingCSV=N
こうすることで、移行後でも「0000-00-00 00:00:00」としてデータの移行ができる。
ただここでもう一つ問題が発生する。
下記のようなカラム構成の場合、左側のカラム情報が引き継がれて保存されてしまう。
移行前
Column | Datatype | Value |
---|---|---|
date1 | TIMESTAMP | 2018-02-28 12:20:30 |
date2 | TIMESTAMP | 0000-00-00 00:00:00 |
移行後
Column | Datatype | Value |
---|---|---|
date1 | TIMESTAMP | 2018-02-28 12:20:30 |
date2 | TIMESTAMP | 2018-02-28 12:20:30 |
DMSを使用して移行作業をされる方はご注意ください。