1个稳定版本
1.6.1 | 2024年3月24日 |
---|
#13 in #升级
73KB
1.5K SLoC
SchemaGuard
将YAML定义的架构和数据合并到PostgreSQL数据库中
创建一个文件
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:
一行代码
let _ = schema_guard::migrate1(schema_guard::load_schema_from_file("file.yaml").unwrap(), &mut db)?;
将创建或升级现有的Postgres数据库架构,并添加所需的表,而不创建额外的表。
[!NOTE] 不建议将架构迁移集成到应用程序中用于生产,因为这违反了安全问题和最佳实践。
请考虑使用功能齐全的 SchemaGuard (个人使用免费)
依赖关系
~16–30MB
~471K SLoC