declare_schema

Crates.iodeclare_schema
lib.rsdeclare_schema
version0.0.9
sourcesrc
created_at2024-07-09 14:19:47.627376
updated_at2024-10-28 16:33:08.068359
descriptionCLI / Library for Postgres schema migrations
homepage
repository
max_upload_size
id1297143
size139,376
Philip Cristiano (philipcristiano)

documentation

README

declare-schema

Experiments with Rust declarative schemas

Use sqlparser-rs for SQL -> AST, then diff ASTs to generate ALTER ASTs, then output SQL.

WARNING: Alpha software, you will likely lose data with this library.

Goal

In application

Include database schema management in to Rust applications without the need for migration steps.

As a CLI

Provide a CLI tool that can generate diffs of schemas and the required ALTER statements for review to detect schema drift.

Easy development experience

When embedded in an application or with a CLI tool keep an easy SQL -> DB flow that is clear to developers with an easy to modify schema.

Current State

Limitations

CREATE EXTENSION - Can be created by name only. Cannot be DROPed.

CONSTRAINT - Cannot be changed, create a new one then drop the old one.

CREATE INDEX - Indexes cannot be ALTERed. To avoid errors in change detection/halting

  • Specify the schema name for the table when creating the index
  • Specify the method for USING that matches defaults:

example: CREATE INDEX idx_id on public.test USING BTREE (id DESC)

Commit count: 0

cargo fmt