Output normalised diffable database schemas
Project description
Diffable SQL
This is a small tool that outputs SQL from a number of databases in a sorted, diff-friendly order.
Install
The tool supports any database that SQLAlchemy supports. You must install the correct connector for your database:
$ pip install diffable-sql
$ pip install psycopg2-binary # postgres
$ pip install mysqlclient # mysql
Usage
You can pass any number of DSNs as arguments, for example postgresql:///db-name
. The tool will output normalised SQL
DDL statements for each DSN.
$ diffable-sql sqlite:///db.sqlite3
CREATE TABLE sometable (
foo VARCHAR,
id BIGINT NOT NULL
);
ALTER TABLE sometable ADD CONSTRAINT c PRIMARY KEY (id);
ALTER TABLE sometable ADD CONSTRAINT c UNIQUE (foo);
CREATE INDEX i ON sometable (foo);
Specifically:
- The tables and columns will be sorted by name
- Indexes and constraints will be renamed as
i
andc
- Deferrable constraint information will be hidden
- Identity columns will be hidden
These allow schemas to be more easily diffed.
Args
$ diffable-sql --help
Usage: diffable-sql [OPTIONS] [dsn]...
Options:
--no-rename-indexes TEXT Don't rename indexes
--no-rename-constraints TEXT Don't rename constraints
--no-ignore-deferrable-constraints TEXT
Include deferrable constraint information
--no-ignore-identity-columns TEXT
Don't ignore identity column information
--help Show this message and exit.
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.
Source Distribution
diffable_sql-0.1.0.tar.gz
(2.4 kB
view hashes)
Built Distribution
Close
Hashes for diffable_sql-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d0106dcdd58fcf01d1bed3bd7c873266326cd9db901c6b40f35428e48fc82bcb |
|
MD5 | f94607baa43bc5ecc021c3a5e26ccf24 |
|
BLAKE2b-256 | 3138a0664c983a93fe8b7e929e13afd35cb2b7eeff8a0faae588b281faf82fe9 |