📈 GH Trending Explorer 🎲 Surprise me

← all repos

tpope / vim-dadbod

git clone https://github.com/tpope/vim-dadbod.git 🔥 on GitHub Trending today

dadbod.vim: Modern database interface for Vim

+1
stars, 24h · #7,723
+~7
stars, 7 days · #8,373
+16
stars, 30 days · #22,162
4.5k
★ total · +0% this week
166
forks · 38 open issues

Star history (as recorded here)

2026-10-20 · 4,455 ★ 2026-10-22 · 4,456 ★
LanguageVim Script
License—
Created2018-03-08 (8y ago)
Last push9mo ago
Watchers36
OwnerUser

Seen on GitHub Trending

  • 2026-10-22 — #15 monthly in vim-script · +16 ★
  • 2026-10-21 — #15 monthly in vim-script · +16 ★
  • 2026-10-20 — #15 monthly in vim-script · +15 ★

Links

README excerpt
# dadbod.vim
Dadbod is a Vim plugin for interacting with databases. It's a more modern
take on [dbext.vim][], improving on it on the following ways:
* Connections are specified with a single URL, rather than prompting you for
 14 separate variables
* All interaction is through invoking `:DB`, not 53 different commands and 35
 different maps (omitting many of the more esoteric features, of course)
* Supports a modern array of backends, including NoSQL databases:
 - Big Query
 - ClickHouse
 - DuckDB
 - Impala
 - jq
 - MongoDB
 - MySQL
 - MariaDB
 - Oracle
 - osquery
 - PostgreSQL
 - Presto
 - Redis
 - Snowflake
 - SQL Server
 - SQLite
 - Your own easily implemented adapter
* Easily configurable based on a project directory (as seen in [rails.vim][],
 for example), rather than just globally or in a per-file modeline
* For those that just can't live without some piece of dbext functionality,
 the option `g:dadbod_manage_dbext` is provided to force dbext to use
 Dadbod's default database.
## Usage
The `:DB` command has a few different usages. All forms accept a URL as the
first parameter, which can be omitted if a default is configured or provided
by a plugin.
Omit further arguments to spawn an interactive console (like `psql` or
`redis-cli`).
 :DB postgresql:///foobar
 :DB redis:
If additional arguments are provided, they are interpreted as a query string
to pass to the database. Results are displayed in a preview window.
 :DB sqlite:myfile.sqlite3 select count(*) from widgets
 :DB redis:/// CLIENT LIST
Give a range to run part or all of the current buffer as a query.
 :%DB mysql://root@localhost/bazquux
Use `<` to pass in a filename.
 :DB mongodb:///test < big_query.js
There's also a special assignment syntax for saving a URL to a Vim variable
for later use.
 :DB g:prod = postgres://user:pass@db.example.com/production_database
 :DB g:prod drop table users
A few additional URL like formats are accepted for interop:
* `:DB jdbc:sqlserver://...`
* `:DB dbext:profile=profile_name`
* `:DB dbext:type=PGSQL:host=...`
* `:DB $DATABASE_URL` (with optional [dotenv.vim][] support)
Plugins can provide their own URL handlers as well. For example,
[heroku.vim][] provides support for `heroku:appname` style URLs.
If you want to manage multiple connections at once through UI,
try [dadbod-ui][].
[dbext.vim]: http://www.vim.org/script.php?script_id=356
[dotenv.vim]: https://tpope.io/vim/dotenv.git
[heroku.vim]: https://tpope.io/vim/heroku.git
[rails.vim]: https://tpope.io/vim/rails.git
[dadbod-ui]: https://github.com/kristijanhusak/vim-dadbod-ui
## Installation
Install using your favorite package manager, or use Vim's built-in package
support:
 mkdir -p ~/.vim/pack/tpope/start
 cd ~/.vim/pack/tpope/start
 git clone https://tpope.io/vim/dadbod.git
 vim -u NONE -c "helptags dadbod/doc" -c q
## Promotion
Like dadbod.vim? Star the repository on
GitHub and vote for it on
vim.org.
Love dadbod.vim? Follow tpope on
GitHub and
Twitter.
## License
Copyright © Tim Pope. Distribu