# Patches Liquibase database migration changelogs. Two subdirectories — one per supported database: ``` patches/ oracle/ _.xml postgresql/ _.xml ``` The filename convention is `{YYYYMMDDHHmm}_{MODULE_KEY}.xml` (e.g. `202604081221_GO.xml`). Both files must always be kept in sync — every changeset must appear in both. ## Rules - **Append-only.** Never edit or delete existing `` entries. Liquibase tracks executed changesets by `id` + `author`; modifying them breaks the checksum and will fail deployment. You can change conditions and order tho. - **Unique IDs.** Each `` must have a unique numeric ID within the file. Increment from the last existing one. - **Use preConditions.** Wrap DDL in `` guards so the changelog is idempotent and safe to re-run. - **Oracle vs PostgreSQL syntax differs.** Sequences, data types, and quoting rules are different — write each file for its target DB. Don't copy-paste blindly between them. ## File skeleton ```xml CREATE TABLE my_table ( ... ); ``` ## vitruvio.json registration ```json "patches": [ { "path": "patches" } ] ```