pub struct Migration {
pub id: &'static str,
pub sql: &'static str,
}
Expand description
Represents a single database migration with its unique identifier and SQL content.
Migrations are typically created at compile time by the include!()
macro
from SQL files in your migrations directory. Each migration consists of:
- An identifier (usually the filename without extension)
- The SQL statements to execute
§Example in ICP Canister
use ic_sql_migrate::Migration;
// Typically included via the include!() macro:
static MIGRATIONS: &[Migration] = &[
Migration::new(
"001_create_users",
"CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT NOT NULL);"
),
Migration::new(
"002_add_email",
"ALTER TABLE users ADD COLUMN email TEXT;"
),
];
Fields§
§id: &'static str
Unique identifier for the migration, typically derived from the filename.
This ID is stored in the _migrations
table to track which migrations have been applied.
sql: &'static str
SQL statements to execute for this migration. Can contain multiple statements separated by semicolons.
Implementations§
Source§impl Migration
impl Migration
Sourcepub const fn new(id: &'static str, sql: &'static str) -> Self
pub const fn new(id: &'static str, sql: &'static str) -> Self
Creates a new migration with the given ID and SQL content.
This is a const fn
, allowing migrations to be created at compile time.
§Arguments
id
- Unique identifier for the migration (must not contain whitespace or special characters)sql
- SQL statements to execute (can be multiple statements separated by semicolons)
§Example
use ic_sql_migrate::Migration;
// Static migrations for use in ICP canisters
static INIT_MIGRATION: Migration = Migration::new(
"001_init",
"CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY);"
);
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Migration
impl RefUnwindSafe for Migration
impl Send for Migration
impl Sync for Migration
impl Unpin for Migration
impl UnwindSafe for Migration
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more