CLI for the Materialize streaming database. With auto-completion and syntax highlighting.
Project description
A REPL for the Materialize Streaming Database Engine
See https://materialize.io for an introduction to Materialize.
Quick Start
The easiest way to get started with mzcli with a remote materialized is to use docker:
docker run -it materialize/mzcli --help
This is a work-in-progress materialize client that does auto-completion and syntax highlighting. It is a soft fork of mzcli, and will hopefully one day be even less of a fork from mzcli, but due to materialize’s extra functionality this will be a long-lived tool for interacting with materialized.
Usage
$ mzcli [database_name] or $ mzcli postgresql://[user[:password]@][netloc][:port][/dbname][?extra=value[&other=other-value]]
Examples:
$ mzcli local_database $ mzcli postgres://amjith:pa$$w0rd@example.com:5432/app_db?sslmode=verify-ca&sslrootcert=/myrootcert
For more details:
$ mzcli --help Usage: mzcli [OPTIONS] [DBNAME] [USERNAME] Options: -h, --host TEXT Host address of the postgres database. -p, --port INTEGER Port number at which the postgres instance is listening. -U, --username TEXT Username to connect to the postgres database. -u, --user TEXT Username to connect to the postgres database. -W, --password Force password prompt. -w, --no-password Never prompt for password. --single-connection Do not use a separate connection for completions. -v, --version Version of mzcli. -d, --dbname TEXT database name to connect to. --mzclirc PATH Location of mzclirc file. -D, --dsn TEXT Use DSN configured into the [alias_dsn] section of mzclirc file. --list-dsn list of DSN configured into the [alias_dsn] section of mzclirc file. --row-limit INTEGER Set threshold for row limit prompt. Use 0 to disable prompt. --less-chatty Skip intro on startup and goodbye on exit. --prompt TEXT Prompt format (Default: "\u@\h:\d> "). --prompt-dsn TEXT Prompt format for connections using DSN aliases (Default: "\u@\h:\d> "). -l, --list list available databases, then exit. --auto-vertical-output Automatically switch to vertical output mode if the result is wider than the terminal width. --warn / --no-warn Warn before running a destructive query. --help Show this message and exit.
mzcli also supports many of the same environment variables as psql for login options (e.g. PGHOST, PGPORT, PGUSER, PGPASSWORD, PGDATABASE).
Features
The mzcli is written using prompt_toolkit.
Auto-completes as you type for SQL keywords as well as tables and columns in the database.
Syntax highlighting using Pygments.
Smart-completion (enabled by default) will suggest context-sensitive completion.
SELECT * FROM <tab> will only show table names.
SELECT * FROM users WHERE <tab> will only show column names.
Primitive support for psql back-slash commands.
Pretty prints tabular data.
Config
A config file is automatically created at ~/.config/mzcli/config at first launch. See the file itself for a description of all available options.
Contributions:
While we are not mzcli, the following documentation expresses our sentiments and still correctly represents the development workflow.
If you’re interested in contributing to this project, first of all I would like to extend my heartfelt gratitude. I’ve written a small doc to describe how to get this running in a development setup.
https://github.com/dbcli/mzcli/blob/master/DEVELOP.rst
Please feel free to file an issue if you need help, or jump in our community slack.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.