db.vim
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:
- MongoDB
- MySQL
- PostgreSQL
- Redis
- 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
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 additonal URL like formats are accepted for interop:
:DB jdbc:postgresql://...
:DB dbext: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.
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/db.git
vim -u NONE -c "helptags db/doc" -c q
Promotion
Like db.vim? Star the repository on GitHub and vote for it on vim.org.
Love db.vim? Follow tpope on GitHub and Twitter.
License
Copyright © Tim Pope. Distributed under the same terms as Vim itself.
See :help license
.