1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
//! Drizzle Migrations - DDL and migration infrastructure for drizzle-rs
//!
//! This crate provides types and utilities for:
//! - Schema snapshots compatible with drizzle-kit format
//! - Migration diffing and SQL generation
//! - Runtime migration execution with embedded or filesystem migrations
//!
//! # Runtime Migrations
//!
//! ## Using db.migrate() (recommended)
//!
//! The simplest way to run migrations is using the `migrate()` method on your Drizzle instance:
//!
//! ```ignore
//! use drizzle::sqlite::rusqlite::Drizzle;
//! use drizzle_migrations::{migrations, MigrationSet};
//! use drizzle_types::Dialect;
//!
//! // Embed migrations at compile time
//! const MIGRATIONS: &[Migration] = migrations![
//! ("0000_init", include_str!("../drizzle/0000_init/migration.sql")),
//! ("0001_users", include_str!("../drizzle/0001_users/migration.sql")),
//! ];
//!
//! fn main() -> drizzle::Result<()> {
//! let conn = rusqlite::Connection::open("./dev.db")?;
//! let (mut db, _) = Drizzle::new(conn, ());
//!
//! let set = MigrationSet::new(MIGRATIONS.iter().cloned(), Dialect::SQLite);
//! db.migrate(&set)?;
//!
//! Ok(())
//! }
//! ```
//!
//! ## Loading from Filesystem
//!
//! During development, load migrations from the migrations directory:
//!
//! ```ignore
//! use drizzle_migrations::MigrationSet;
//! use drizzle_types::Dialect;
//!
//! let set = MigrationSet::from_dir("./drizzle", Dialect::SQLite)?;
//! db.migrate(&set)?;
//! ```
//!
//! # CLI Usage
//!
//! For generating migrations, use the `drizzle-cli` crate:
//!
//! ```bash
//! # Install
//! cargo install drizzle-cli
//!
//! # Initialize config
//! drizzle init --dialect sqlite
//!
//! # Generate migrations
//! drizzle generate
//!
//! # Run migrations
//! drizzle migrate
//! ```
// Core migration types
pub use ;
pub use ;
pub use PrefixMode;
pub use ;
// Version constants
pub use ;
// Upgrade utilities
pub use ;
// Core traits and dialect markers
pub use ;
// Collection types for diffing
pub use ;
// Re-export serde_json for generated code
pub use serde_json;
// Schema types
pub use ;