## SchemaGuard
### Merging YAML defined schema and data into PostgreSQL database
Create a [YAML](yaml.md) file:
```yaml
database:
- schema:
schemaName: test_schema
owner: postgres
tables:
- table:
tableName: test_table
description: The new table
constraint: -- some SQL as table constraint
sql: -- some SQL suffix on table create
columns:
- column:
name: id
type: serial
defaultValue:
constraint:
primaryKey: true
nullable: false
foreignKey:
references: --fk_table
sql: -- some SQL suffix on new FK create, like- on delete no action on update no action
description:
sql: -- some SQL suffix on new column create
- column:
name: test
type: varchar(250)
triggers:
- trigger:
name: uniq_name_of_trigger
event: before update
when: for each row
proc:
```
One line of code:
```rust
let _ = schema_guard::migrate1(schema_guard::load_schema_from_file("file.yaml").unwrap(), &mut db)?;
```
Will create or upgrade existing Postgres database schema with desired tables without extra table creation.
> [!NOTE]
Not recommended to integrate schema migrate into application for production use
as such violate security concern and best practices.
Please consider to use full-featured [SchemaGuard](https://www.dbinvent.com/rdbm/) (free for personal use)