DataGrip is cool and all that, but when it came out I thought it would be a tool for refactoring databases (in concert with the code referencing those databases, of course), and that doesn't seem to be the direction at all. You know, things like 'denormalize table to 2NF', 'collapse tables A and B into a single table that uses a disjoint discriminator column' These are the type of things which make intelliJ great, after all.
And then versioning. You know - getting the schema into Git branches too. Tools like Powerdesigner DataArchitect follow a 'diff two diagrams, generate DDL to patch the schema' sort of thing. Tools like RedGate SQL Compare do a 'find the differences and resolve them' sort of thing. DataGrip could have occupied this awesome middle ground where you'd have the logical schema defined by two DataSource (and each datasource could be one of: the schema that your application code logically references (on some branch), or it could be schema that really does exist in the DEV , STAGING or PROD databases (either live or as a DDL dump), and DataGrip lets you generate a 'change-script' with intentions like 'rename this column via a copy to a temporary table, drop the original, copy the data back, automagically sorting out the foreign-key relationship issues for me'. When A+changescript=B then you're 'green'.
Even just an inspection like 'your DDL on your current VCS branch thinks this table is called 'foo' .. there is no such table in the live database however.". And intentions like: Would you like to: create foo in the database; remove foo from your DDL-datasource, rename bar which-really-looks-like-foo-anyway-in-the-database; or rename the foo in your DDL-datasource to bar as in the database?' would be a useful start.
If DataGrip and/or the Database plugin do these things already, I've missed 'em, sorry.
Anyway, I just through I'd mention it while it's in my head and I'm unusually logged in to the forum.