tconbeer / harlequin

The SQL IDE for Your Terminal.
https://harlequin.sh
MIT License
3.55k stars 77 forks source link

Allow install without duckdb #475

Closed albertfilice closed 5 months ago

albertfilice commented 6 months ago

I’m trying to install Harlequin on a Raspberry Pi Zero 2 and the duckdb part takes hours and hours, I haven’t seen it actually complete yet.

I only want to use harlequin with SQLite, is it possible to get it without the duckdb support/adapter?

tconbeer commented 6 months ago

Sounds like there isn't a duckdb wheel for your platform, so you're compiling from source on your rpi. You could probably use a dev box to build a wheel for your rpi platform and install that wheel before installing harlequin.

You could also compute harlequin's dependencies with pip freeze (etc), create a requirements.txt, delete duckdb (which has no python deps), and install with pip install --no-deps -r requirements.txt

Harlequin should mostly work without DuckDb (the exporter will crash; there is a chance that module gets imported at startup, in which case you'll have to remove/catch the DuckDb import). In the future though, I'm planning on a deeper integration with DuckDb (for cross-database joins etc), so ripping it out doesn't make sense. I thought about moving it to an Extra, and I might do that if I could make it a default extra, but Python doesn't have such a thing. You could fork this repo and move the dependency to an extra, though, and that may work for you!

albertfilice commented 6 months ago

Thanks!

That did help some, at least going the route where I would build it on my Mac in venv then freeze pip and run with --no-deps like you said.

However, I ran into more issues installing pyarrow, and also tree-sitter-languages if I recall correctly.

tconbeer commented 6 months ago

Yeah, those all require c extensions. Pyarrow is critical - you could do without tree-sitter and tree-sitter-languages (it's just for syntax highlighting and it degrades gracefully without)