Search code examples
postgresqlmeltano

Meltano: tag-postgres to target-postgres: data type such as uuid is converted to varchar


I'm actually working on a Meltano project where I have to extract data from one postgres database and load to the final warehouse (also a postgres database) using "Key-based Incremental Replication".

After the loading process of meltano, all table with columns of type uuid from the "tap-postgres" are changed to varchar in the target. Could someone help to solve this issue?


Solution

  • Singer taps rarely capture "rich" string types such as uuid, and they output simple {"type": "string"} types without any additional metadata. Furthermore, Singer usually only supports JSONSchema Draft 4, so {"type": "string", "format": "uuid"} would not even be supported by most taps and targets.

    Since Singer is an ELT analytics framework and in that context a uuid column type is not different in any meaningful way from a varchar, this is hardly an issue for most people.

    If you need to replicate a database with that level of detail you may be better served by a different solution for database backup/replication.