Readit News logoReadit News
rsyring · 7 years ago
I can't believe how hard it is to find a good database client tool that runs on Linux. I spent hours on Sunday looking for something that worked as well as pgadmin3. I don't prefer these Java tools that force you to manage JDBC drivers and usually share dated and cluttered UIs. Plus, I can't stand having to manage connections to each database instead of to each server. Let me connect to the server and then select my dB.

My notes:

  - Lists
  - https://wiki.postgresql.org/wiki/PostgreSQL_Clients
  - https://wiki.postgresql.org/wiki/Community_Guide_to_PostgreSQL_GUI_Tools
  - Clients
  - Most clients are Java, which is a pain b/c
    - they require you to list the DB in the connection
    - JDBC drivers can not use a socket connection
    - UI isn’t great
  - Valentina Studio
    - Has free & pro ($199) versions
    - Was the easiest to get connected initially, but then found bug that showed it wasn’t using socket connection as expected.
  - Navicat
    - Linux version is a Wine app
  - RazorSQL ($100 / year)
    - Is a Java app
    - Not much different from SQL Workbench, just use that instead?
  - TeamSQL
    - Electron, AppImage
    - Wanted me to enter an email address just to use the software, became privacy concerned about how much stuff would get sent to their servers
  - DbVisualizer ($197, $69 renewal)
    - Java
    - Downloaded & tried it, typical java app
  - SQL Workbench/J (OSS)
    - Java
  - Datazenit
    - web based but still Java?
  - PgManage
    - too crude
  - JetBrains DataGrip ($199 / $159)
    - Java
  - PgAdmin3
    - has lots of errors when used with PostgreSQL 11
  - PgAdmin4
    - installed, couldn’t get past the splash screen which said it couldn’t find the application server
  - Sqlectron
    - Electron
    - Couldn’t get a DB connection to save
  - dbForge
    - Windows only
  - dbGlass
    - No longer developed
  - HeidiSQL
    - Windows only
  - DBeaver
    - OSS and enterprise version

sk5t · 7 years ago
You can flip between postgres databases in dbeaver quite easily (dbeaver calls it changing the "active object"). I used to use pgadmin3 every day, and have found dbeaver to be much better, and about the same as DataGrip. Although some things still feel better in psql or pgcli.

The vast coverage of JDBC is probably a good reason so many tools use Java. I'm sure you wouldn't prefer they all used ODBC or DBI instead.

rahilsondhi · 7 years ago
PopSQL (https://popsql.io) should give you the modern UI you're looking for. Although you will have to create a connection per database, unfortunately.
wink · 7 years ago
Just installed the DEB on 18.04.

Won't show more than a white screen because of "[Oracle] NJS-045: cannot load the oracledb add-on binary for Node.js 8.2.1 (linux, x64)" - this does not inspire confidence.

Website says "PostgreSQL, MySQL, BigQuery, SQL Server, Redshift, Snowflake, SQLite, Presto, Cassandra, Oracle, ODBC, and more on the way."

wmsiler · 7 years ago
Despite being written in Java, DBeaver does let you connect to a server, then pick which database you wish to connect to.
smt88 · 7 years ago
HeidiSQL works fine with Wine.

DataGrip is fantastic and not expensive if you use other JetBrains products. It also manages its own JDBC drivers -- you don't need to install at the OS level.

mping · 7 years ago
Datagrip looks ugly on my gnome3 with 4k and 2.0 scaling. Fonts are way small. Also, it's a bit on the heavy side.
axaxs · 7 years ago
Absolutely. I only work in MySQL and dbeaver was the only tool that worked without a huge headache in Linux.
StreakyCobra · 7 years ago
I have subscribed to this issue [1] of azuredatastudio (ex sqlopsstudio) in the hope that one day it will support more than SQL Server. I am not sure Microsoft would have any interest in supporting others SQL engine though. Visually the software looks really similar to VSCode by the way.

[1] https://github.com/Microsoft/azuredatastudio/issues/56

chinhodado · 7 years ago
> PgAdmin4 > - installed, couldn’t get past the splash screen which said it couldn’t find the application server

That was my experience as well. pgAdmin 4 is such a shit show.

pjmlp · 7 years ago
> JDBC drivers can not use a socket connection

As someone that has done lots of Java development you have lost me there, as JDBC drivers obviously do make use of network connections, usually TCP/IP sockets.

miragium · 7 years ago
they are probably referring to unix sockets. I used dbeaver already and got stuck on this very problem.
spacemanmatt · 7 years ago
TCP-only is not as big a deal as it used to be. If network stack overhead dominates your db connection you have probably done something wrong.
rsyring · 7 years ago
Sorry, I meant Unix socket. They are the best setup for postgres connections on a dev machine imo.
rsyring · 7 years ago
For what it's with:

- Valentina Studio: support confirmed and fixed the bug in about a day. Waiting for the next release. Not crazy about some of their UI, but hopeful this will be my answer.

- DBeaver: going to give it a try

onlydeadheroes · 7 years ago
Run pgadmin4 on docker, save yourself the setup.

dpage/pgadmin4

spricket · 7 years ago
Dbeaver is the best FOSS database UI tool hands down. I've done a lot of searching and haven't found anything close. Managed to convert my whole office to it in a matter of months.

Favorite features:

Well integrated ER diagrams that let you quickly see parts of the db related to current table, or the whole thing if you want.

SQL generation from structure or data edits. Great for cranking out DB migrations like a boss.

Ability to maintain many database connections at once, and support for doing stuff before/after connecting which we widely abuse to setup SSH and VPN connections.

Very liberal database support. My original search for a tool like DBeaver was from the need to connect to MySQL, Postgres, and SQL Server and not wanting to use a bunch of different tools. DBeaver supports roughly anything Java supports, which is everything.

Wide OS support. Good luck finding another tool that can connect to MS SQL Server on MacOs that isn't garbage or money.

The icon is also adorable

The only downside is a bit of classic FOSS UI clunk. Not nearly as rediculous as Eclipse or Blender or the like, but it takes a few days to get comfortable.

wink · 7 years ago
Just installed it for the first time in a few years.

- Again I wonder why it doesn't show the tables first, I have to go through Schemas -> Public.

- 480 MB of RES RAM, I'm connected to one smallish Postgres DB.

- I can't even find "just show me the contents of the table, like 'SELECT * FROM'.

I know, maybe it's tailored for Enterprise Database Architects, but this is my smoke test for a DB GUIs:

"How long and how many clicks does it take so that it provides more value than: 'psql; \dt+; SELECT * FROM X;'"

spricket · 7 years ago
Maybe I've been jaded by SSMS and Mysql Management Studio heh. DBeaver actually has a better UI than most DB tools I've used, even though that's still not saying a lot.

Mouse over the buttons for an excessive amount of time and the tooltips will tell ya what they do.

Double click a table and go to "data" tab to see contents.

Schemas ->public is just a side effect of supporting a lot of different databases. Many support schemas

Ram is because default java heap size, you could probably change launch params to get it much lower though.

On all counts other DB tools I've used are just as obtuse and burn tons of resources. Most are written in Java or another high-level language because it's nigh impossible to get DB drivers for a ton of different databases working together in C. DBeaver is basically leveraging JDBC for what it was designed for

mritchie712 · 7 years ago
I have this same smoke test and it's one of the reasons we built "slash commands" into SeekWell (https://seekwell.io/). If you type "/show" (or even just "/s") you get a list of tables that will be filtered down as you type. Once you select a table it will autocomplete a SELECT statement and return the results. It also works for things like adding a WHERE condition. The goal is to make it so you never have to leave your keyboard, but also never need to type out menial SQL. Here's a 30 seconds video showing how it works.

https://www.useloom.com/share/0e0b79b0b8304035af4bb15552abc3...

neosavvy · 7 years ago
How is no one talking about https://www.jetbrains.com/datagrip/

These guys actually fix their bugs. It works on every database known to humans, and also does nearly everything DBeaver appears to do.

yumraj · 7 years ago
Perhaps, but DBeaver is free while Datagrid is not, in fact it is rather expensive at $199.

For many people, including me perhaps, something like DBeaver is good enough since it's free.

crazysim · 7 years ago
$90 individual

https://www.jetbrains.com/datagrip/buy/#edition=personal

But you're probably right.

tomnipotent · 7 years ago
> rather expensive at $199

Compared to a six-figure salary? Developers tools are a bargain for what we get out of them.

h1d · 7 years ago
It's about $8 a month and even lower on subsequent years.

But the real power of DataGrip comes by using it in one of their IDE that auto completes table and column names inside code and allows you to shift-click it to get to see the definition and show warning when you specify an unknown field.

wyqydsyq · 7 years ago
The software is great but I would never buy it purely because of their business model.

There is absolutely no reason DataGrip needs to be a subscription service. There aren't any ongoing costs for customers to use it.

It should be a one-off purchase with optional support subscription, maybe requiring re-purchase at major version increments, not this bullshit where you need to maintain a subscription for a license on a binary program you already paid for and installed.

Feels as dodgy as Adobe turning Photoshop into a subscription service

Fuck these business models and the sales idiots who try to apply them to every single product

gregmac · 7 years ago
I used to think like this too, but I've since changed my mind and understand why they do this -- and it can even be beneficial for users. There's a few big problems with the old model:

First, you have to define the difference between "major" and "minor" version. Users expect major versions to have some significant improvements or new features. What this means is as a developer, you have incentive not to release minor features regularly, but instead batch them together so you can do a "major" release.

Second, the sales team now dictates the release cycle. More major releases means more money, but do it too frequently and the user base revolts. In many companies sales dictates the releases, but now if development is late it's messing with the company's cash flow and ability to continue to exist.

Third, the software can never be "done", because that means no more major releases. As a result, unless there is a sustainable stream of new users, you get feature and scope creep.

Subscriptions mean predictable revenue, and make the developer's incentive align with users: keeping users happy. This means keeping the product stable, making incremental improvements, and evolving with features that make sense.

Of course the beauty of the market is you should be able to find products sold both ways, and you can choose.

chamakits · 7 years ago
Just so you know, although not very clearly documented, yearly subscriptions include perpetual license for that specific version.

You can see it on the “buy” page.

It’s still less than ideal, but I pay yearly for their “all pack” product and I feel with the amount I use it I’ve gotten my money’s worth every year.

spullara · 7 years ago
You always have a perpetual license to the last version that your subscription covered. It isn't anything like Adobe's model.
wwn_se · 7 years ago
All jetbrains products have a licence witch grants you the right to use the tools you buy forever(Without updates). If you buy a tool in 2019 you get a licence for 2019.1 and updates for a year. So if you never update you only have to pay once.
h1d · 7 years ago
So why don't you pay once and keep that version for as long as you want? It's a perpetual license.

If you want major updates, it's not weird to be asked to pay for it, which means continued subscription.

mu_killnine · 7 years ago

    It works on every database known to humans
Our team just bought a bunch of licenses of DBeaver and I think this is only correct if you mean 'relational' databases. We have a MongoDB and Eleastic and I don't believe that DataGrip supports either of these, which was a real drag.

We're fully on Jetbrains tools otherwise (R#, dotTrace and dotMemory, TeamCity as build server) so it was a no brainer for me to want to continue that trend but it didn't check all the boxes for us, despite its clear polish.

I tend to hate any IDE built on Eclipse (which I think DBeaver is), but I've been very pleasantly surprised with how well it works.

1. It's got very nice ER modeling where other tools (Like Oracle SQL Developer) make you jump through a dozen screens and a wizard to make a simple diagram.

2. It's got nice export tools to get your data to business partners in a more convenient way. Sure you can copy tables in pretty much every tool but there's just an 'excel' button that can pop open your current query in a new sheet.

3. It does have a weird delay when opening up databases sometimes where it 'reads metadata' about the table and it can sometimes take a long time to return even the most basic query. But once it's cached that data I've not noticed problems after that.

4. It does seem like the document database tooling isn't as baked as the relation tooling. I routinely get hangs when querying my Mongo collections, which is sometimes a drag. But it hasn't been a huge issue.

Overall, I'd highly recommend the paid version of this tool as it's helped me consolidate: Robo3T, Sql Server Mgmt Studio, SQL Developer, and MySQL Workbench into a single tool.

crawrey · 7 years ago
DataGrip is great.

My previous workplace used to be locked into the Microsoft ecosystem and the core legacy product was backed onto a Microsoft SQL Server DB.

Over the years we pushed the business to move away from the MS/Windows ecosystem. When this happened, like many others, I looked for a UNIX compatible DB client that supported SQL Server.

First, I tried SQuirreL[1] and it was horrible. I just had to uninstall it and keep looking. I settled on DBeaver for a while as it has some nice features and it did most of the things I needed it to, but it was not particularly polished.

Eventually the business decided to pay for Jetbrain's All Products package which includes DataGrip and from my experience you could say: Eclipse is to IntelliJ IDEA what DBeaver is to DataGrip.

The other product I was looking closely at was Navicat for SQL Server[2], which looks pretty damn good and those who use it seem to swear by it. However, I am not a DBA and for that reason I can't justify the USD$699 personal licence price tag of Navicat.

DataGrip is not perfect, but it's pretty damn close and I think its price tag is well justified.

1. http://squirrel-sql.sourceforge.net/

2. https://www.navicat.com/en/store/navicat-for-sqlserver/

worble · 7 years ago
I've never personally used it, but I'm fairly sure you can use Azure Data Studio[0] for plain MSSQL databases, despite Azure being in the name. I'd be in interested in what people think of it, since I've never seen anyone talk about this in the wild.

[0]https://github.com/Microsoft/azuredatastudio

sixdimensional · 7 years ago
I paid for and use Navicat and it has always been stable, fast and good. A little pricey as you say, but good.
h1d · 7 years ago
Have you tried TablePlus? (Not the author but just want to know the experience if you have.)
dotjosh · 7 years ago
This, it's incredible. Amongs many other things, it supports a lot of the navigation/refactoring features of all the other IntelliJ products.
danellis · 7 years ago
Does it do anything the IntelliJ database plugin doesn't do?
sqlcook · 7 years ago
Nice if you’re only connecting to a single instance, nightmare if you have multiple. DbVisualizer is better imho.
h1d · 7 years ago
I tried to like it and used it for a few months but eventually got back to SequelPro and it just feels breeze to use when every operation is so snappy not to mention an instant launch.

The embedded DataGrip can be a good tool inside one of their IDE though.

dikei · 7 years ago
DBeaver support much more database products than Datagrip though.
akfanta · 7 years ago
> It works on every database known to humans

Except any non-relational DBs.

milin · 7 years ago
Prolly does not work on redis
tyldum · 7 years ago
Enterprise version, like with Influxdb as well.
orthecreedence · 7 years ago
I use DBeaver all the time and love it.

MySQL, Postgres, SQLite, etc...all the tools I need in one app.

I generally try to avoid Eclipse-based projects because they can be very bloated, but in this case it's easily justifiable.

zamazingo · 7 years ago
Does it provide any linting or other code checks? I'm curious because I'm looking for something that can teach me proper SQL coding style and practices as I write it.
AlfeG · 7 years ago
Yes. At least for Postgres autocomplete is very handy.
zoom6628 · 7 years ago
Been a user of DBeaver for years - across all my platforms. Its does most things well enough that it has not been a problem to use across SQLite, MSSQL, MySQL and various file based data. Easier to use than SQuirreL which used to be my fav. All of these are java tools I think primarily because of starting from JDBC for which there seems to be a driver for just about everything on the planet.

So DBeaver scratches my itch of needing same tool across platforms, across databases.

mewm · 7 years ago
I like to try out new tools likes this, but whilst on my mac, and I generally use Sequel Pro for my databases (I use mysql and mariadb drop-ins). I have my database locally in a docker container, where I forward 3306 to 3300. Entering host as 127.0.0.1 with correct credentials and port, it gives me this error: "Could not connect: Access denied for user 'root'@'172.18.0.1'". This does not happen with Sequel, but occurs with Dbeaver. It actually also happened trying TablePlus which is a piece of software that a fellow commenter was mentioning. I'm sure that it could be solved in my configs by allowing that particular IP, which is the local IP of the virtual machine which is serving docker. However, that is supposed to be completely transparent, thus I should be able to connect through 127.0.0.1. As I haven't looked at the source code, it seems like the host lookup logic is flawed, as it translates my `127.0.0.1` to `172.18.0.1`. Why? Dunno. But this occurred in both Dbeaver and TablePlus. Works in my terminal and in Sequel however.
lugg · 7 years ago
This sounds like a docker network problem more than an issue with dbeaver.

Try binding MySQL to 0.0.0.0 (all interfaces) instead of 127.0.0.1 (loopback). That said, 127.0.0.1 should be fine provided you connect through the service name or the docker container IP), connecting via 127.0.0.1 doesn't make sense. Then again, it's docker on Mac, so I don't really know.

Fwiw, also used sequel pro on Mac, moving to Linux dbeaver was the only thing that came close.

Now I don't really mind either but dbeaver is a bit quirky overall.

mewm · 7 years ago
I know I can solve that by allowing "everytuldhing" to connect, but that is not my point. Hence my ""I'm sure that it could be solved in my configs by allowing that particular IP"" comment. That it's `Docker on mac` is kinda irrelevant, as it's still just a virtual machine with a somewhat static IP. My point is, that when it comes to transparency on that level, this piece of software does not acknowledge that, but Sequel Pro does. I'm not a particular fan of Sequel Pro, but it just works in these types of case. I'm still expecting, that software like this, would be able to handle this type of "proxy mechanism", so from outside the docker container, I could still connect through 127.0.0.1 to it, thus making the default config adequate. Not sure if this is even makes sense, but I feel, that when connecting through a binding docker port, it should still use the origin IP ie. 127.0.0.1
codetrotter · 7 years ago
Woah, that ER diagram functionality reminds me of a tool that I tried a long time ago but which I had since forgotten. Back then the tool in question had too many issues and shortcomings, but they may have developed it sufficiently now.

https://pgmodeler.io/

Being told about Dbeaver and reminded of pgModeler right now is great because I am currently defining the tables for a project I am working on for a client, and as the number of tables grow jumping back and forth between the files that define each of them adds a still small but noticeable overhead. With a ER diagram tool I might be able to speed up a little part of the definition work.

Edit: Hmm, pgModeler might still not be such a great tool https://news.ycombinator.com/item?id=17693582

deviantfero · 7 years ago
This is a great tool and it makes my life so much easier, so much better than pgadmin4

Dead Comment