DB 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:
- 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
: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
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.
< to pass in a filename.
:DB mongo:///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:email@example.com/production_database :DB g:prod drop table users
A few additonal URL like formats are accepted for interop:
: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.
Install using your favorite package manager, or use Vim's built-in package
mkdir -p ~/.vim/pack/tpope/start cd ~/.vim/pack/tpope/start git clone https://tpope.io/vim/db.git vim -u NONE -c "helptags db/doc" -c q
Like db.vim? Star the repository on
GitHub and vote for it on
Love db.vim? Follow tpope on
Copyright © Tim Pope. Distributed under the same terms as Vim itself.