Crates.io | schema_guard |
lib.rs | schema_guard |
version | 1.6.1 |
source | src |
created_at | 2024-03-24 18:03:11.066812 |
updated_at | 2024-03-24 18:03:11.066812 |
description | Schema Guard: Relation Database (Schema) Management tool |
homepage | https://github.com/vkrinitsyn/schema_guard |
repository | https://github.com/vkrinitsyn/schema_guard |
max_upload_size | |
id | 1184605 |
size | 79,139 |
Create a file:
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:
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 (free for personal use)