Database Client for VS Code: a review of cweijan/vscode-database-client
Database Client For Visual Studio Code
At a glance
- What is it?
- The MIT-licensed extension puts MySQL, PostgreSQL, SQLite, Redis, ClickHouse, 达梦 and ElasticSearch connections inside the VS Code sidebar. This review covers how the connection and query flow works, what the README admits about backup, and why the repository you can clone is not the extension you install.
- Who is it for?
- Adopt it if you already live in VS Code and want MySQL, PostgreSQL, SQLite, Redis, ClickHouse, 达梦 or ElasticSearch in the sidebar without running a second application, and if you are comfortable that the published extension is closed source while the repository holds early code. Do not adopt it if you need a documented, stable backup path, or if you need Oracle, since the README does not list it.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 115 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 4, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What Database Client solves, and for whom
Switching to a standalone database GUI means leaving the editor, reconnecting, and copying SQL back and forth. Database Client removes that trip. It is a VS Code extension that adds a Database view container to the activity bar and lets you add connections, browse schemas, open a bound SQL editor and run queries without leaving the window. The README lists MySQL/MariaDB, PostgreSQL, SQLite, Redis, ClickHouse, 达梦 and ElasticSearch as supported engines, and it also describes SSH client functionality. That coverage is wider than the extension's own package name suggests: the manifest is called vscode-mysql-client2 and the display name is simply MySQL, yet the description in package.json reads "Database Client for vscode". Anyone who needs one editor-side client for a mixed stack is the intended audience. Anyone who needs a full database administration suite with a documented backup pipeline is not.
How the connection, cache and query flow actually work
The mechanism is a sidebar tree plus a language service. Activation is event-driven: package.json registers onCommand:mysql.connection.add, onCommand:mysql.refresh, onView:github.cweijan.mysql and onView:github.cweijan.nosql, so the extension loads when you open the view or invoke a command rather than at startup. Connections are added from the Database Explorer panel with the + button, where you pick a database type and fill in a connection config. Each connection appears as a node; tables hang beneath it.
The query editor is bound to a database. The README says Open Query opens "a SQL editor bind of database" and lists IntelliSense, snippets (sel, del, ins, upd, joi), run-selected-or-current-statement on Ctrl+Enter, and run-all on Ctrl+Shift+Enter, which the manifest exposes as the command id mysql.runSQL. The extension ships its own SQL grammar and snippets through contributes.grammars and contributes.snippets, so the editor's highlighting and completion are the extension's, not a generic SQL mode.
Schema metadata is cached. The README is explicit that "the database information is cached" and that if your database structure changes externally you must click refresh. That is a deliberate trade: fast tree rendering in exchange for stale schema until you act. Teams that run migrations from a terminal will hit this constantly. The SSH support is credited to ssh2 in the README's credits list, alongside node-mysql2, node-postgres, tedious, ioredis and a SQLite client reference, which tells you the driver layer is a set of Node clients rather than one abstraction.
Installing Database Client and running a first query
The README points to two distribution channels: the Visual Studio Code Marketplace listing under the id cweijan.vscode-mysql-client2, or Open VSX under the same id. There is no npm package and no build-from-source instruction in the README, so installation means the extension host.
After installation, open the Database view in the activity bar. The README's connect steps are: click the + button in the Database Explorer panel, select the database type, enter the connection config, then click connect. Once connected, click a table to open the table view, where the README says you can modify data directly. Clicking the button beside a table opens a second table view, which is how you compare two tables side by side.
For ad hoc SQL, click Open Query in the panel. That opens an editor bound to the connection. Press Ctrl+Enter to run the selection or the statement under the cursor, or Ctrl+Shift+Enter to run all SQL. Snippets such as sel, del, ins, upd and joi expand while you type, and typing a table name should trigger completion from the cached schema. If a table you just created in another client is missing from the tree, that is the cache, not a bug: click refresh.
Telemetry is on by default and follows VS Code's own telemetry setting. The README gives this key for turning it off independently, which belongs in settings.json:
"database-client.telemetry.usesOnlineServices": falseBackup is the weak point, and the README says so
The README's backup section contains an admission that most extension pages would bury: "The extension implements the backup function, but it is not stable enough." The recommended workaround is to put mysql_dump or pg_dump on your PATH, after which the extension will shell out to those tools instead of using its own implementation. That is a real constraint, not a footnote. It means your backup reliability depends on an external binary being installed and correctly versioned, and it means the built-in path is documented as unreliable. Export and import live in the right-click context menu of a DatabaseNode or TableNode, so the feature is discoverable, but discoverable is not the same as dependable.
Two other limits are worth naming. First, Oracle is absent from the supported list in the README. Search traffic for "vscode database client oracle" exists, but the README does not promise Oracle, and the credits list only MySQL, PostgreSQL, SQL Server, Redis and SQLite clients. Second, the cache interacts badly with any workflow where schema changes come from outside the editor, which includes most CI-driven migration setups. Neither of these is a defect in the code; both are boundaries you should know before standardising a team on it.
The repository is not the extension you install
This is the part that decides adoption for many engineers. The README opens with a line that is easy to skim past: "This repository contains the early source code. The new version is closed source." The published extension is not built from this tree. What you can read, fork and audit is the early version, and package.json in the repository reports version 3.9.8 while the most recent release listed is 4.7.0 from 2022-02-26. The gap between the repository version and the release line is the gap between open code and shipped code.
The licence is MIT, which covers the code in this repository. It does not automatically describe the closed-source build distributed through the marketplace. If your organisation's policy requires that the tool you run be auditable, the MIT licence on this repository does not satisfy that requirement for the installed extension, because the installed extension is a different artefact. The README does link a privacy statement for the telemetry the extension sends, which is the right document to read if data leaving your machine is the concern.
Maintenance signals are mixed and should be read literally. The repository is not archived, and the last push was on 2026-06-13. The release list, however, stops at 4.7.0 in February 2022. A repository that receives commits while its listed releases stop four years earlier suggests the public tree is not where releases are cut, which is consistent with the closed-source statement.
How it compares with DBeaver and JDBC-based clients
DBeaver is the alternative most people reach for, and the difference is architectural rather than cosmetic. DBeaver is a standalone application built on JDBC drivers, so its driver coverage is whatever JDBC offers, including Oracle and many engines this extension does not list. It has its own window, its own connection pool, and its own backup and export tooling that does not depend on the README admitting instability. Database Client is the opposite trade: it lives inside VS Code, uses Node client libraries (node-mysql2, node-postgres, tedious, ioredis) rather than JDBC, and gives up engine breadth and standalone tooling in exchange for staying in the editor.
That distinction explains the search traffic around "database client jdbc vscode" and "vscode database client oracle". If your work is Oracle-centric, or you need one client that speaks to everything through JDBC, a JDBC-based tool is the better fit and this extension is the wrong tool. If your stack is MySQL or PostgreSQL plus Redis, and the cost of alt-tabbing to a separate application is the thing slowing you down, the extension's approach is the one that removes that cost. The SSH client feature is a second axis where the two diverge: here it is built in through ssh2, which matters for bastion-host setups.
Licence, telemetry and upgrade cost
The repository is MIT licensed. That permits use, modification and redistribution of the code in this repository, subject to the licence text in the LICENSE file. It does not by itself settle the terms of the marketplace extension, which the README describes as closed source and which has its own distribution. This is a factual distinction, not legal advice; if a compliance team needs a determination, they need to read the extension's own terms and the privacy statement the README links, not the repository LICENSE.
Telemetry is enabled by default and follows VS Code's telemetry settings, with an independent switch at database-client.telemetry.usesOnlineServices. The README states that anonymous usage data is sent to the Database Client server. In an environment where outbound traffic is restricted, that setting is the one to change before rollout.
Upgrade cost is low in the ordinary case: extensions update through the marketplace or Open VSX, and the connection configs live in VS Code settings rather than in the repository. The cost that is not low is the audit cost. Because the shipped extension is closed source, every upgrade is a version you cannot diff against the code you reviewed. Teams that need to know what changed in a binary they run will pay that cost on every release.
Editorial conclusion
Adopt it if you already live in VS Code and want MySQL, PostgreSQL, SQLite, Redis, ClickHouse, 达梦 or ElasticSearch in the sidebar without running a second application, and if you are comfortable that the published extension is closed source while the repository holds early code. Do not adopt it if you need a documented, stable backup path, or if you need Oracle, since the README does not list it. Before you commit, check the extension page for the current version and licence key terms, read the privacy statement the README links, and decide whether to set database-client.telemetry.usesOnlineServices to false.
Frequently asked questions
How do I show a database in VS Code with Database Client?
Install the extension, open the Database view container in the activity bar, click the + button in the Database Explorer panel, choose the database type, enter the connection config and click connect. The schema then appears as a tree of nodes under that connection.
How do I connect to a database using VS Code?
The README's steps are to open the Database Explorer panel, click +, select your database type, fill in the connection config and press the connect button. Supported engines listed in the README include MySQL/MariaDB, PostgreSQL, SQLite, Redis, ClickHouse, 达梦 and ElasticSearch.
Does VS Code allow SQL with Database Client?
Yes. The extension contributes its own SQL language grammar and snippets, and Open Query opens an editor bound to a database where Ctrl+Enter runs the selected or current statement and Ctrl+Shift+Enter runs all SQL.
How can I use SQL in VS Code with Database Client?
Open the Database Explorer panel and click Open Query to get an editor bound to the connection, with IntelliSense and snippets such as sel, del, ins, upd and joi. The README documents Ctrl+Enter for the current statement and Ctrl+Shift+Enter for all SQL.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/cweijan-vscode-database-client)