Hey folks! n00b question: How do I pin a loader (...
# troubleshooting
b
Hey folks! n00b question: How do I pin a loader (or any plugin really), to a newer version than what is pulled by default when running
meltano add loader <loader>
? I’m running into an issue where the
target-duckdb==0.4
loader pulled by meltanohub is incompatible with newer versions of duckdb. The
0.5.0
release addresses these issues (ref), but I haven’t gotten meltano to recognize this version, even after changing the
pip_url
. Thanks in advance!
Here’s my test:
Copy code
meltano add extractor tap-jaffle-shop
meltano add loader target-duckdb
meltano run tap-jaffle-shop target-duckb
a
Did you change the meltano.yml only? There is likely a lock file in the plugins directory that is fetching the older version. Try that, then take a look at adding a custom plugin, might lead you down the right path even if that’s not the best plan for your case.
b
Yea, updating meltano.yml to have the right pip_url and clearing the lock file didn’t seem to resolve unfortunately ;( I’ll take a look at the custom plugin logic. Thanks for the pointer!
a
One more idea. Did you ‘meltano install’ and failing that rm your .meltano directory.
b
Unfortunately, no luck with that either. The only thing I could get to work was something like:
Copy code
name: target-duckdb--new
    inherit_from: target-duckdb
    pip_url: target-duckdb==0.5.0
a
Interesting. I recall something weird / unexpected recently. Similar to your project. I think I found updating the meltano.yml pip_url had no effect (I expected it would), updating the lock file did have an effect, but that shouldn’t be updated manually in my opinion, deleting the lock file used the latest from the hub. Sound about right? Would be great to report a bug on it.
u
@bryce_arden were you able to figure it out? This sounds like its not pulling in the new code after you changed the pip url. What I would do in this case is edit the pip url in my meltano.yml to pin to whatever version you need then run
meltano install loader target-duckdb --clean
. The clean flag will remove previously installed code and reinstalled a fresh version. I wonder if it wasnt overwriting your venv after you updated the pip url. The lock files only contain the metadata in most cases with the pip url not version constrained. Whatever you put in your meltano.yml would override it.