Skip to main content

Module schema_sync

Module schema_sync 

Source
Expand description

Schema Sync — 自动结构同步

§概述

比较实体定义与 DB 现有表结构差异,自动生成并执行 DDL(CREATE/ALTER TABLE)。 禁止破坏性 DDL(ADR-v2.1.0-004):不生成 DROP TABLE / DROP COLUMN。

§工作流

  1. introspect(conn) → 读取 DB 现有表结构
  2. diff(entity, db) → 计算 6 类变更
  3. 检查破坏性变更 → 若有则返回 Err(DestructiveChangeDetected)
  4. generate(diff) → 生成 DDL 语句
  5. sync(conn) → 事务内执行 DDL

§示例

use sz_orm_core::schema_sync::{SchemaSync, TableDef, ColumnDef};

let entity_tables = vec![
    TableDef::new("users", vec![
        ColumnDef::new("id", "BIGINT", false, true, None),
        ColumnDef::new("email", "VARCHAR(255)", false, false, None),
    ]),
];

let sync = SchemaSync::new(entity_tables);
let ddl = sync.sync_dry_run(&mut conn).await?;
// ddl: ["ALTER TABLE users ADD COLUMN email VARCHAR(255)"]

Structs§

ColumnDef
列定义
DestructiveSyncResult
破坏性同步结果(v2.2.0 B-2)
MssqlDdlGenerator
MSSQL DDL 生成器
MySqlDdlGenerator
MySQL DDL 生成器
OracleDdlGenerator
Oracle DDL 生成器
PgDdlGenerator
PostgreSQL DDL 生成器
SchemaDiff
Schema 差异
SchemaSync
Schema Sync 协调器
SqliteDdlGenerator
SQLite DDL 生成器
SyncResult
同步结果
TableDef
表定义

Enums§

Confirm
破坏性同步确认枚举(v2.2.0 B-2)

Traits§

DataMigrationHook
数据迁移钩子 trait(v2.2.0 B-2)
DdlGenerator
DDL 生成器 trait

Functions§

diff
比较实体定义与 DB 现有表结构,输出 6 类变更