Skip to main content

Crate sqlmodel_schema

Crate sqlmodel_schema 

Source
Expand description

Schema definition and migration support for SQLModel Rust.

sqlmodel-schema is the DDL and migrations layer. It inspects Model metadata to generate CREATE/ALTER SQL and provides tooling for schema diffs and migrations.

§Role In The Architecture

  • Schema extraction: derive expected tables/columns from Model definitions.
  • Diff engine: compare desired vs. actual schema for migration planning.
  • DDL generation: emit dialect-specific SQL for SQLite, MySQL, and Postgres.
  • Migration runner: track, apply, and validate migrations.

Applications typically use this via sqlmodel::SchemaBuilder, but it can also be embedded in custom tooling or CI migration checks.

Re-exports§

pub use create::CreateTable;
pub use create::SchemaBuilder;
pub use ddl::DdlGenerator;
pub use ddl::MysqlDdlGenerator;
pub use ddl::PostgresDdlGenerator;
pub use ddl::SqliteDdlGenerator;
pub use ddl::generator_for_dialect;
pub use expected::ModelSchema;
pub use expected::ModelTuple;
pub use expected::expected_schema;
pub use expected::normalize_sql_type;
pub use expected::table_schema_from_fields;
pub use expected::table_schema_from_model;
pub use introspect::CheckConstraintInfo;
pub use introspect::ColumnInfo;
pub use introspect::DatabaseSchema;
pub use introspect::Dialect;
pub use introspect::ForeignKeyInfo;
pub use introspect::IndexInfo;
pub use introspect::Introspector;
pub use introspect::ParsedSqlType;
pub use introspect::TableInfo;
pub use introspect::UniqueConstraintInfo;
pub use migrate::Migration;
pub use migrate::MigrationFormat;
pub use migrate::MigrationRunner;
pub use migrate::MigrationStatus;
pub use migrate::MigrationWriter;

Modules§

create
CREATE TABLE statement builder.
ddl
DDL (Data Definition Language) generation from schema operations.
diff
Schema diff engine for comparing database schemas.
expected
Expected schema extraction from Model definitions.
introspect
Database introspection.
migrate
Database migration support.

Functions§

create_all
Create all tables for the given models.
create_table
Create a table for a model type.
drop_table
Drop a table.
drop_table_sql
Generate DROP TABLE SQL (for testing/inspection).