Bagaimana Menangani Error 'date/time field value out of range: "J538976288 149:42:56"' Ketika Melakukan Proses Migrasi dengan PGDBF ?

Ketika melakukan proses migrasi, saya menemukan kesalahan seperti berikut :

$ pgdbf -d LOG_SATKER.KEU | iconv -c -f UTF-8 -t UTF-8 | psql -U eoffice rkakldipa2012

BEGIN

SET

NOTICE: table "log_satker" does not exist, skipping

DROP TABLE

SET

CREATE TABLE

ERROR: date/time field value out of range: "J538976288 149:42:56"

CONTEXT: COPY log_satker, line 1, column tgdsupdate: "J538976288 149:42:56"

ROLLBACK

Bagaimana solusinya .. ?

Dengan Spoon/Kettle

Jika menggunakan Spoon/Kettle, hasilnya tidak sempurna, karena ada beberapa kolom yang tidak terbaca, contohnya, pada kasus diatas ada 5 tabel yang tidak terbaca, berikut screenshot nya :

Solusi sementara

Buat struktur :

$pgdbf -d LOG_SATKER.KEU | less

Maka akan terlihat DDL nya, copy paste DDL nya, seperti berikut :

CREATE TABLE log_satker (kdsatker VARCHAR(6), nmsatker VARCHAR(200), kddept VARCHAR(3), kdunit VARCHAR(2), kdlokasi VARCHAR(2), kdkabkota VARCHAR(2), nomorsp VARCHAR(4), kdkppn VARCHAR(3), kdjnssat VARCHAR(1), kdupdate VARCHAR(1), tgupdate TIMESTAMP, nodsupdate VARCHAR(100), tgdsupdate TIMESTAMP, jnssekolah VARCHAR(2), userid VARCHAR(9), kdruh VARCHAR(1), kdunit_awa VARCHAR(3), kdpusda VARCHAR(1), kdsatblu VARCHAR(1), kdstatblu VARCHAR(1), ambangbts DECIMAL(4), persenpkai DECIMAL(4), nosp_dipal VARCHAR(4), nosp_bantu VARCHAR(4), kdreceh VARCHAR(1), kdunit2 VARCHAR(2), kdaktif VARCHAR(1), kdaktif2 VARCHAR(1), updater VARCHAR(50), tglupdate TIMESTAMP);

Kemudian, jalalankan DDL tersebut di database rkakaldipa2012

Untuk migrasi datanya, kolom dengan tipe timestamp saya ubah menjadi character varying, lalu jalankan lagi perintah diatas dengan tambahan opsi -C

(suppresses the "CREATE TABLE" statement.)

$pgdbf -C -d LOG_SATKER.KEU | iconv -c -f UTF-8 -t UTF-8 | psql -U eoffice rkakldipa2012

Referensi