Skip to main content

crossdb-query

python tests docker build pypi publish

Execute a SQL file on all PostgreSQL databases on a host. By default, the script will execute the SQL file on all databases on the host. The user can specify a list of databases to include or exclude from the execution. By default, the postgres database is excluded from the execution as well as any template databases.

Features

  • Execute SQL files on multiple PostgreSQL databases.
  • Include or exclude specific databases.
  • List all available databases on the host.
  • Debug logging support.

Installation

Using Docker

  1. Build the Docker image:

    docker build -t crossdb-query .
    
  2. Run the Docker container and bind mount the SQL file:

    docker run -it --rm -v $(pwd)/<sql_file>:/app/<sql_file> crossdb-query -u <username> -v <host> -f <sql_file>
    

Using Python

  1. Install using pip:

    pip install crossdb-query
    
  2. Run the script:

    crossdb_query.py -u <username> -v <host> -f <sql_file>
    

Usage

usage: crossdb_query.py [-h] [-d] [-f FILE] -u USER -v HOST [-p PORT] [-l] [-i INCLUDE] [-e EXCLUDE]

Execute a SQL file on all PostgreSQL databases on a host. By default, the script will execute the SQL file on all databases on the host. The user can specify a list of databases to include or exclude from the execution.

options:
  -h, --help            show this help message and exit
  -d, --debug           Enable debug logging.
  -f FILE, --file FILE  The SQL file to execute.
  -u USER, --user USER  The username to connect to the database.
  -v HOST, --host HOST  The host of the database.
  -p PORT, --port PORT  The port of the database.
  -l, --list            List all available databases on the host and exit.
  -i INCLUDE, --include INCLUDE
                        A comma-separated list of databases on which the SQL file will be executed. THe databases must be separated by a comma and no spaces.
  -e EXCLUDE, --exclude EXCLUDE
                        A comma-separated list of databases on which the SQL file will not be executed. The databases must be separated by a comma and no spaces.

Examples

List all databases on the host

$ crossdb_query.py -u <username> -v <host> -l

The script crossdb_query.py wants the password for PostgresDB(host=localhost, port=5432, database=postgres, user=pg_user):
Available databases:
  - accounts
  - customers
  - django_db
  - employees

Execute a SQL file on selected databases

$ crossdb_query.py -u <username> -v <host> -f <sql_file> -i accounts,employees

The script crossdb_query.py wants the password for PostgresDB(host=localhost, port=5432, database=postgres, user=pg_user):
Databases selected for execution:
  - accounts
  - employees
(1/2) Executing on database accounts
  Success
(2/2) Executing on database employees
  Success

Execute a SQL file on all databases except the specified ones

$ crossdb_query.py -u <username> -v <host> -f <sql_file> -e accounts,employees

The script crossdb_query.py wants the password for PostgresDB(host=localhost, port=5432, database=postgres, user=pg_user):
Databases selected for execution:
  - customers
  - django_db
(1/2) Executing on database customers
  Success
(2/2) Executing on database django_db
  Success

Notes

If the user specifies a database that does not exist on the host, the script will ignore the database and continue with the script execution without warning the user.

Release files for crossdb-query 0.0.2

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

Source distribution (sdist)

Source distribution for crossdb-query 0.0.2
File Size Uploaded
crossdb_query-0.0.2.tar.gz 44.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for crossdb-query 0.0.2
File Interpreter ABI Platform
crossdb_query-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 74.1 kB

Release files / crossdb_query-0.0.2.tar.gz

Download URL crossdb_query-0.0.2.tar.gz
Size 44.1 kB
Tags Source
SHA-256 checksum
How to use checksums
abed8f718054f2a01f87b3c438b0df8839a73ed9de1f3fef4e7cfd177e8e8746
BLAKE2b-256 checksum
How to use checksums
76e3a69929e2b6366a7c56c3ab4440139fdbf2bfe57d96b4cb97ab3b11357734
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.7

Release files / crossdb_query-0.0.2-py3-none-any.whl

Download URL crossdb_query-0.0.2-py3-none-any.whl
Size 30.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c50f9ef56f77f68b24dbc7f6c2a73a147d995708a7f7388636a16c2051aaa364
BLAKE2b-256 checksum
How to use checksums
f0367e11c09fb9971ff2380a1914b23f91956bfde71cc699fbd1be5790650362
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.7

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files

0.0.1

2 release files

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