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
Modeldefinitions. - 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).