Skip to main content

SchemaOperation

Enum SchemaOperation 

Source
pub enum SchemaOperation {
Show 17 variants CreateTable(TableInfo), DropTable(String), RenameTable { from: String, to: String, }, AddColumn { table: String, column: ColumnInfo, }, DropColumn { table: String, column: String, table_info: Option<TableInfo>, }, AlterColumnType { table: String, column: String, from_type: String, to_type: String, table_info: Option<TableInfo>, }, AlterColumnNullable { table: String, column: ColumnInfo, from_nullable: bool, to_nullable: bool, table_info: Option<TableInfo>, }, AlterColumnDefault { table: String, column: String, from_default: Option<String>, to_default: Option<String>, table_info: Option<TableInfo>, }, RenameColumn { table: String, from: String, to: String, }, AddPrimaryKey { table: String, columns: Vec<String>, table_info: Option<TableInfo>, }, DropPrimaryKey { table: String, table_info: Option<TableInfo>, }, AddForeignKey { table: String, fk: ForeignKeyInfo, table_info: Option<TableInfo>, }, DropForeignKey { table: String, name: String, table_info: Option<TableInfo>, }, AddUnique { table: String, constraint: UniqueConstraintInfo, table_info: Option<TableInfo>, }, DropUnique { table: String, name: String, table_info: Option<TableInfo>, }, CreateIndex { table: String, index: IndexInfo, }, DropIndex { table: String, name: String, },
}
Expand description

A single schema modification operation.

Variants§

§

CreateTable(TableInfo)

Create a new table.

§

DropTable(String)

Drop an existing table.

§

RenameTable

Rename a table.

Fields

§from: String
§

AddColumn

Add a column to a table.

Fields

§table: String
§column: ColumnInfo
§

DropColumn

Drop a column from a table.

For SQLite, safely dropping a column on versions < 3.35 requires table recreation. When table_info is present, the SQLite DDL generator can emit a correct recreate-copy-drop sequence (preserving indexes we track).

Fields

§table: String
§column: String
§table_info: Option<TableInfo>
§

AlterColumnType

Change a column’s type.

Fields

§table: String
§column: String
§from_type: String
§to_type: String
§table_info: Option<TableInfo>
§

AlterColumnNullable

Change a column’s nullability.

Fields

§table: String
§column: ColumnInfo
§from_nullable: bool
§to_nullable: bool
§table_info: Option<TableInfo>
§

AlterColumnDefault

Change a column’s default value.

Fields

§table: String
§column: String
§from_default: Option<String>
§to_default: Option<String>
§table_info: Option<TableInfo>
§

RenameColumn

Rename a column.

Fields

§table: String
§from: String
§

AddPrimaryKey

Add a primary key constraint.

Fields

§table: String
§columns: Vec<String>
§table_info: Option<TableInfo>
§

DropPrimaryKey

Drop a primary key constraint.

Fields

§table: String
§table_info: Option<TableInfo>
§

AddForeignKey

Add a foreign key constraint.

Fields

§table: String
§table_info: Option<TableInfo>
§

DropForeignKey

Drop a foreign key constraint.

Fields

§table: String
§name: String
§table_info: Option<TableInfo>
§

AddUnique

Add a unique constraint.

Fields

§table: String
§table_info: Option<TableInfo>
§

DropUnique

Drop a unique constraint.

Fields

§table: String
§name: String
§table_info: Option<TableInfo>
§

CreateIndex

Create an index.

Fields

§table: String
§

DropIndex

Drop an index.

Fields

§table: String
§name: String

Implementations§

Source§

impl SchemaOperation

Source

pub fn is_destructive(&self) -> bool

Check if this operation potentially loses data.

Source

pub fn inverse(&self) -> Option<Self>

Get the inverse operation for rollback, if possible.

Some operations are not reversible (e.g., dropping a table/column) because the original schema and data cannot be reconstructed from the operation alone.

Source

pub fn table(&self) -> Option<&str>

Get the table this operation affects.

Trait Implementations§

Source§

impl Clone for SchemaOperation

Source§

fn clone(&self) -> SchemaOperation

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SchemaOperation

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, _span: NoopSpan) -> Self

Instruments this future with a span (no-op when disabled).
Source§

fn in_current_span(self) -> Self

Instruments this future with the current span (no-op when disabled).
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more