Known Issues

The following summarizes notable known issues, in particular those that affect sharing YAML specifications with the Pyrseas utilitites.

Coverage of Database Objects

Perseid currently supports a subset of PostgreSQL objects focused on schemas, tables, columns, and their constraints. Future releases are planned to support the other objects covered by Pyrseas. For details on what is currently supported, see the API Reference.

PostgreSQL Extensions

Perseid does not currently extract or recognize PostgreSQL extensions. As a result:

  • dbtoyaml does not emit extension entries, even if the database has extensions installed (e.g. plpgsql).

  • yamltodb will reject a YAML specification that contains extension objects (e.g. Pyrseas-generated output) with an Unrecognized object type error.

  • Applying Perseid-generated YAML against a database that has extensions may cause Pyrseas tools to emit DROP EXTENSION statements when comparing against a specification that omits them.

Support for PostgreSQL extensions will be added in a future release.

YAML Formatting

Perseid’s YAML output differs cosmetically from Pyrseas in a few respects:

  • Key ordering: Perseid preserves insertion order when emitting YAML mappings, while Pyrseas sorts keys alphabetically.

  • Spacing/indentation: There are minor differences in sequence indentation and line formatting.

These differences do not affect the parsing of the YAML structures.

Statement Ordering

When generating SQL with yamltodb, the order of DROP statements for tables and constraints may differ from Pyrseas. Both produce valid SQL for the same set of objects; the differences only appear when there are no dependency constraints that force a specific order.