Contents
0.8.0 (12-Dec-2017)
Significant rearchitecture of methods to generate SQL.
- An object dependency graph is built and traversed to generate SQL in correct order (#72, #86, #100)
Added support for Postgres 10, specifically:
- Table partitioning syntax (#163)
- Column specification GENERATED AS IDENTITY (#164)
Added support for other Postgres features:
- Parallel safe functions and partial aggregation (#161)
- RANGE types (#173)
- ALTER TYPE ADD VALUE for changes to ENUM types (#87)
0.7.2 (23-Jan-2015)
Fixed various issues, including:
- Do not error on tables whose names start with 'public' (#109)
- Deal properly with inherited constraints in children tables (#102)
- Handle external languages like plv8 correctly (#97)
- Correct quoting of mixed case constraint names (#83)
- Avoid problems with certain complex index definitions (#98)
- Have dbtoyaml output correctly a table with an embedded period in the name and having an associated sequence (#79)
- Use relative paths in database summary for --multiple-files (#93)
- Support mapping of indexes on materialized views (#82)
0.7.1 (5-Dec-2013)
- Moved config.yaml under pyrseas directory and use package_data to install (#77)
- yamltodb output to a file is encoded using utf-8 (#78)
0.7.0 (25-Nov-2013)
Added support for:
- Postgres 9.3, specifically
- EVENT TRIGGER
- MATERIALIZED VIEWS
- CLUSTER
- Partial indexes
- Storage parameters in CREATE and ALTER TABLE
- ALTER COLUMN SET STATISTICS
- LEAKPROOF qualifier for FUNCTIONs
- YAML multi-line string formatting for view definitions, function source text and object comments
Configuration files
All Pyrseas utilities can now use YAML-formatted configuration files, in addition to command line options
Multiple-file input or output
Spread database object information across a version control repository
Data export/import
Load a database with static data in production or data subsets for testing
dbtoyaml/yamltodb
- Added --quote-reserved option to yamltodb
- Exclude arguments from sfunc and finalfunc attributes of aggregate functions (#54)
- Correct generation of SQL for functions with DEFAULT arguments (#52)
Augmenter
New utility (dbaugment) to consistently add objects to an existent database. This is currently an experimental feature and covers adding audit columns to tables.
TTM-inspired relational interface
A new interface to Postgres, inspired by The Third Manifesto
0.6.1 (31-Jan-2013)
- Add support for INSTEAD OF triggers on views (#50).
- Eliminated yamltodb generation of spurious REVOKE/GRANT commands (#51).
- Removed setuptools from setup.py install_requires.
0.6.0 (26-Oct-2012)
- Added support for:
- EXTENSIONs
- COLLATIONs
- OWNER information
- Access privileges (GRANT and REVOKE)
- TABLESPACEs for tables, primary keys and indexes
- MATCH attributes for foreign keys (#34)
- ALTER composite TYPE ADD/DROP/RENAME ATTRIBUTE
- ENUMs with no labels (#31)
- UNLOGGED tables (#45)
- CREATE FUNCTION SET configuration_parameter (#46)
- PostgreSQL 9.2
- Correctly support index functions/expressions (#3, #44).
- Schema-qualify composite types when dropping or renaming attributes (#47)
- Fix DbConnection exception handling under Python 3 (#25).
- dbtoyaml
- Fix -t option to output sequences owned by table and the schema description.
- Use pg_user_mappings view to allow usage by non-superusers.
- yamltodb
- Schema-qualify table when dropping columns (#26).
- Correct column drop/add case in middle of table (#8).
- Fix adding and dropping of columns in inherited tables (#33).
- Enable renaming of indexes (#38).
- Ignore all temp schemas (#37)
- dbtoyaml/yamltodb
- Give PGUSER precedence over USER environment variable.
- Testing
- Added support, via Tox, for testing against multiple PostgreSQL/Python combinations
- Changes and documentation for testing on Microsoft Windows
0.5.0 (10-Mar-2012)
- Added support for:
- TEXTSEARCH parsers, dictionaries, configurations and templates
- FOREIGN DATA WRAPPERs, SERVERs, USER MAPPINGs and FOREIGN TABLEs
- ROWS clause in set-returning functions (issue #11)
- Deferrable/deferred constraints (#13)
- CATEGORY and PREFERRED clauses for TYPEs, SORTOP clause for AGGREGATEs HASHES and MERGES clauses for OPERATORs (#15)
- Operator class qualifiers for INDEXes (#16)
- Python 3.2 and later
- Correct schema normalization for constraints (#9) and indexes.
- Fix COMMENTs generated for constraints (#12).
- Fix DEFAULT clause for OPERATOR CLASS.
- dbtoyaml
- When restricting to specific schemas or tables, include non-schema objects (e.g., languages).
- yamltodb
- Add -n/--schema option (#6).
- Add -u/--update option to apply SQL statements to target database.
- Exclude database-wide objects when -n/--schema is used (#21).
- Allow YAML spec argument to be read from standard input.
- dbtoyaml/yamltodb
- Add -o/--output option
- Add -W/--password option (#18)
0.4.1 (27-Oct-2011)
- Make the initial SET search_path persistent.
- Correct exclusion of PG internal schemas in various queries.
- Fix generation of COMMENTs with single quotes in the text.
- For inherited tables, only generate constraints that are defined locally.
- Correct generation of ALTER TABLE ADD/DROP COLUMN when input columns are in different order than original.
- Support PG 9.1 (add description for PL/pgSQL language).
0.4.0 (26-Sep-2011)
- Added support for:
- CASTs
- CONSTRAINT TRIGGERs
- CONVERSIONs
- OPERATORs, OPERATOR CLASSes and OPERATOR FAMILies
- Dynamically loaded C language functions
- Composite and base TYPEs
- Clean up and enhance documentation and redundant methods.
- Use obj_description/col_description functions instead of querying pg_description directly.
0.3.1 (26-Aug-2011)
- Added workaround for incorrect assumption that 'public' schema is always present (issue #4).
- Added support for delimited (or quoted) identifiers, e.g., those with embedded spaces, upper case characters, etc. (except for SQL keywords) (issue #5).
0.3.0 (30-Jun-2011)
- Added support for:
- AGGREGATE functions
- DOMAINs
- ENUMerated TYPEs
- Functions returning table row types
- INDEXes on expressions (issue #3)
- Rewrite RULEs
- SECURITY DEFINER functions
- TRIGGERs
- Enhanced host/port defaults to use sockets, resulting in noticeable performance improvement.
0.2.1 (7-Jun-2011)
- Fixed problem with mapping a FOREIGN KEY in a table with a dropped column (issue #2).
0.2.0 (19-May-2011)
- Added support for:
- COMMENTs on schemas, tables, columns and functions
- FOREIGN KEY ON UPDATE and ON DELETE actions
- ALTER TABLE RENAME COLUMN and enhanced support for other ALTER object RENAME statements.
- VIEWs
- INHERITed tables, and by extension, partitioned tables.
- PROCEDURAL LANGUAGEs
- FUNCTIONs.
- Added files for release via PGXN.
- Added support for testing against multiple PostgreSQL versions.
- Fixed cross-schema REFERENCES failure in dbtoyaml (issue #1).
0.1.0 (5-Apr-2011)
- Initial release
- dbtoyaml and yamltodb support PostgreSQL schemas, tables, sequences, check constraints, primary keys, foreign keys, unique constraints and indexes.