Skip to main content

Description

greptable generates a plain-text list of your servers, databases and tables, so that you can easily find where the fuck that table is, with your favorite search tools, like grep.

This is especially useful if you are dealing with many servers and databases.

Requirements

greptable works on both Python 2 and Python 3.

The only dependency is SQLAlchemy, and it should support the same databases.

Usage

For global options run greptable -h.

All commands need a configuration file; see the Configuration section below.

Listing tables

To list the tables, run greptable dump.

You can change the configuration file path with the -c (also known as --config). By default, it uses ~/.config/greptable.conf if it exists, otherwise greptable.conf from the current directory.

The tables are listed to the standard output by default. The -o (also known as --output) option can dump in a file instead.

Example: greptable -c greptable.conf dump -o tables.txt

For full help on options run greptable dump -h.

Opening tables

greptable lets you open a table or schema in your favorite admin interface, built from a configured URL template.

This is thought for phpMyAdmin, but should work with other tools, even non-web (if not, please provide examples or patches).

Using it is as simple as running greptable open followed by the selected output of a greptable dump. You can even do greptable open $(greptable dump|grep mytable).

The URL will be opened by xdg-open. If it’s not opening the wanted browser, you should set the BROWSER environment variable.

If you only want to show the URL, and not open it automatically, use the -s (also known as --show) option.

Configuration

The configuration is a standard INI file. Section headers are SQLAlchemy URLs.

For example:

[mysql://user:password@server1]
[sqlite:///db.sqlite]

greptable will try to prettify server URLs, but you can also force a name.

For example:

[mysql://user:password@server1]
[sqlite:///db.sqlite]
name = db

For the open subcommand, you can provide both a openschema and opentable option. If the openschema option is not provided, opentable will be used, with the table parameter being an empty string.

The variable substitution uses the Python format() syntax.

For example:

[mysql://user:password@server1]
opentable = https://penguincorp.com/pma/index.php?server=0&db={schema}&table={table}

[mysql://user:password@server2]
opentable = https://penguincorp.com/pma/index.php?server=1&db={schema}&table={table}

[otherdb://user:password@server]
name = srv0
openschema = https://penguincorp.com/otherdb/{server}/tables/{schema}
opentable = https://penguincorp.com/otherdb/{server}/showtable/{schema}/{table}

Development

Contributions can be sent in the form of git patches, to laurent@bachelier.name.

Metadata

Release files for greptable 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for greptable 1.1.0
File Size Uploaded
greptable-1.1.0.tar.gz 5.9 kB Details

Release files / greptable-1.1.0.tar.gz

Download URL greptable-1.1.0.tar.gz
Size 5.9 kB
Tags Source
SHA-256 checksum
How to use checksums
5b6ba553e8ace3cbd5f934667566073fe81990da57bbc5d40cf3854a13c72567
BLAKE2b-256 checksum
How to use checksums
2219efc36c2f689b52a63c0e7044d90ee20f05df098c600211ea65073280cd25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.1.0 This release

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page