# Perseid Perseid is a C++ toolkit for extracting and applying PostgreSQL database schemas, derived from [Pyrseas](https://github.com/perseas/Pyrseas). It converts a live database schema to YAML, and can apply YAML descriptions back to a database—enabling version-controlled schema management. ## Quick start Extract a database schema to YAML ``` dbtoyaml testdb -o schema.yaml ``` Apply a YAML schema to a database ``` yamltodb testdb schema.yaml --update ``` ## Features - **`dbtoyaml`**: Extracts the definition of database tables and other objects (metadata) from PostgreSQL into YAML format, suitable for storing in a version control repository. - **`yamltodb`**: Reads a YAML schema specfication and generates or executes SQL `CREATE`/`ALTER`/`DROP` statements to modify a target PostgreSQL database so that it will match the input. ## Documentation ```{toctree} :maxdepth: 2 :caption: User Guide user/overview user/known-issues ``` ```{toctree} :maxdepth: 1 user/dbtoyaml user/yamltodb user/common-options user/yaml-format ``` ```{toctree} :maxdepth: 2 :caption: Developer Guide devel/installation devel/building devel/testing ``` ```{toctree} :maxdepth: 2 :caption: API Reference api/index ```