SQLly now imports and exports connections, notebooks and snippets

Import and export connections for pgAdmin, Azure Data Studio, VS Code, DBeaver, DataGrip, DbGate and pg_service.conf, plus Jupyter notebooks and VS Code snippets.

By

Nobody tries a new database client on a blank slate. By the time you download one, you have thirty saved connections in DBeaver, a pgAdmin server list someone curated two jobs ago, a folder of Azure Data Studio notebooks, and snippets your fingers type without asking you. Rebuilding all of that by hand is the real price of switching, and it is why most people don't.

So SQLly now reads and writes the files those tools already use. Connections from pgAdmin, Azure Data Studio, VS Code, DbGate and PostgreSQL service files join the DataGrip, DBeaver, TablePlus, Navicat and Redis Insight imports that were already there. Every format SQLly reads that has a documented counterpart can also be written back out. Notebooks move as Jupyter .ipynb files, and snippets move as VS Code snippet files.

Everything SQLly reads and writes

ToolFileImport into SQLlyExport from SQLly
pgAdminservers.jsonConnections newConnections new
Azure Data Studio & VS Codesettings.json, .ipynb, snippet filesConnections, notebooks, snippets newConnections, notebooks, snippets new
DbGateconnection .envConnections newConnections new
psql & libpq toolspg_service.confConnections newConnections new
DBeaverdata-sources.jsonConnectionsConnections new
DataGrip & JetBrains IDEsdataSources.xmlConnectionsConnections new
Jupyter, JupyterLab.ipynbNotebooks newNotebooks new
VS Code.code-snippets, sql.jsonSnippets newSnippets new
TablePlusConnections.plist, .tableplusconnectionConnections-
Navicat.ncxConnections-
Redis Insightdatabase export (JSON)Connections, with passwords-
Another copy of SQLlySQLly connection fileConnections, optionally with passwordsConnections, optionally with passwords

TablePlus, Navicat and Redis Insight are import-only for now. Their files are stable enough to read, but none of the three documents its format, and a file SQLly writes by guesswork is one the other tool might half-load. To take a connection to TablePlus, copy its URL from SQLly and use TablePlus’s Import from URL.

Going out matters as much as coming in

An import-only tool asks you to commit before you've decided. Export is what makes trying SQLly cheap: if it doesn't suit you, or your teammate lives in pgAdmin and isn't moving, File → Export for Other Tools writes the connections you pick in the format the other tool imports:

Export forFileHow the other tool reads it
pgAdminservers.jsonTools → Import/Export Servers
Azure Data Studio / VS Codesettings.jsonMerge the keys into your user settings
DBeaverdata-sources.jsonDrop it beside your own as data-sources-sqlly.json
DataGripdataSources.xmlPaste the data sources into the Database Explorer
DbGate.envdocker run --env-file, or the server's environment
psql and libpq toolspg_service.confpsql service=orders

The picker only lists connections the target can open, so pgAdmin's list is your PostgreSQL servers and their relatives (CockroachDB, Neon, Supabase, RDS and the rest), not your Redis cache. Folders survive in both directions: SQLly projects become pgAdmin server groups, DBeaver folders and DataGrip folders, and come back as projects.

Only formats someone wrote down

Every format here is one its owner documents (pgAdmin's servers.json, DbGate's connection variables, the PostgreSQL service file, nbformat, VS Code snippets), or a plain export the tool itself reads back. That rule is why HeidiSQL, Beekeeper Studio and SSMS registered servers aren't on the list yet. Their files are private, and an importer built by guessing works right up until the next release, when it quietly starts dropping the TLS setting. The docs list those tools with the quickest way across today, which is usually copying a connection URL into SQLly's Paste URL.

Passwords stay where they are

None of these exports contains a password, even where the target format has a field for one. Imports leave them behind too, even when the other tool kept them in the file in clear text (Azure Data Studio's settings and DbGate's PASSWORD_ variables, for example). SQLly asks for each password the first time you connect and keeps it in the system keychain. The only importer that carries passwords is Redis Insight's, and only when you ticked Include passwords when you exported; they go straight to the keychain.

Notebooks and snippets

Azure Data Studio's retirement left a lot of SQL notebooks without a home. They are ordinary Jupyter files, and SQLly now opens .ipynb directly: code cells become SQL cells, a leading %%sql magic is dropped, and Markdown stays Markdown. It saves back as a standard notebook that VS Code and JupyterLab open with a SQL kernel, and Export Jupyter in the notebook toolbar does the same for any SQLly notebook. Stored outputs don't come along. They were someone else's results from someone else's connection, and the point of a notebook is that you can run it again.

Snippets were the easy part, because SQLly already used VS Code's placeholder syntax. Preferences → Editor → Snippets & Quick Actions has Import from VS Code… and Export for VS Code…. A snippet with three prefixes becomes three SQLly snippets, snippets scoped to Python stay behind, and if you already have a prefix, your version wins.

Try it

Point File → Import From Other Tools… at the file your current tool keeps. SQLly figures out which tool wrote it and shows what it will import and what it will skip, with reasons, before changing anything. The Compatibility section of the docs has a page per tool, covering where the file lives, what comes over and what doesn't. If your tool documents a format we've missed, send it over.