Hello all - testing out the defualt tap-postgres (...
# plugins-general
w
Hello all - testing out the defualt tap-postgres (transferwise) to target-postgres (datamill-co) and hitting an error "target_postgres.postgres.PostgresError: Identifier must only contain lower case letters, numbers, underscores, or dollar signs. Got
a
for `public-orders`" The error message aligns with what the code states, namely if an identifier contained upper case letters then it should flag something (https://github.com/datamill-co/target-postgres/blob/9c095d91e215f932caa897a6587c6dc6278db8cf/target_postgres/postgres.py#L389). So how is 'a' triggering this? Maybe I misunderstanding something here...first time using Meltano and Singer taps/targets!
Okay whoops now I see the next line in the code. It looks like this error message will always print 'a' because the regex is looking for a non-number in the string '1234a567'. That means I will need another way to print out what is not matching. Which I now assume is the "-" in "public-orders"?
So the default tap and targets for postgres need to be overwritten in order to play nicely? I am seeing a target-postgres from transferwise that could be used
d
Correct, you’ll want to use the TransferWise variant of both tap and target. This is mentioned in the Troubleshooting section of the page on the datamill-co variant of target-postgres, but that is easy to miss
w
Yep, when I switched it over it worked fine! I now see that noted in the troubleshooting - thanks for the response. Any particular reason that the datamill target is the default?
d
The transferwise targets have seen a lot of use with transferwise taps, but not as much with others, while datamill-co has been a popular choice for non-transferwise-taps. If you find that the transferwise target works just fine with non-transferwise taps, we can definitely consider making that the default
w
I see - if I explore non-transferwise-taps then I will let you know. For now I plan to stick with transferwise.
d
Sound good. You can also use different variants of target-postgres side by side in one project, so you should be good either way 🙂