Skip to main content

AutoMigrateStep

Enum AutoMigrateStep 

Source
pub enum AutoMigrateStep<'def> {
Show 19 variants RemoveIndex(<IndexDef as ModuleDefLookup>::Key<'def>), RemoveConstraint(<ConstraintDef as ModuleDefLookup>::Key<'def>), RemoveSequence(<SequenceDef as ModuleDefLookup>::Key<'def>), RemoveSchedule(<ScheduleDef as ModuleDefLookup>::Key<'def>), RemoveView(<ViewDef as ModuleDefLookup>::Key<'def>), RemoveRowLevelSecurity(<RawRowLevelSecurityDefV9 as ModuleDefLookup>::Key<'def>), RemoveTable(<TableDef as ModuleDefLookup>::Key<'def>), ChangeColumns(<TableDef as ModuleDefLookup>::Key<'def>), AddColumns(<TableDef as ModuleDefLookup>::Key<'def>), AddTable(<TableDef as ModuleDefLookup>::Key<'def>), AddIndex(<IndexDef as ModuleDefLookup>::Key<'def>), AddSequence(<SequenceDef as ModuleDefLookup>::Key<'def>), AddSchedule(<ScheduleDef as ModuleDefLookup>::Key<'def>), AddView(<ViewDef as ModuleDefLookup>::Key<'def>), AddRowLevelSecurity(<RawRowLevelSecurityDefV9 as ModuleDefLookup>::Key<'def>), ChangeAccess(<TableDef as ModuleDefLookup>::Key<'def>), ChangePrimaryKey(<TableDef as ModuleDefLookup>::Key<'def>), UpdateView(<ViewDef as ModuleDefLookup>::Key<'def>), DisconnectAllUsers,
}
Expand description

A step in an automatic migration.

Variants§

§

RemoveIndex(<IndexDef as ModuleDefLookup>::Key<'def>)

Remove an index.

§

RemoveConstraint(<ConstraintDef as ModuleDefLookup>::Key<'def>)

Remove a constraint.

§

RemoveSequence(<SequenceDef as ModuleDefLookup>::Key<'def>)

Remove a sequence.

§

RemoveSchedule(<ScheduleDef as ModuleDefLookup>::Key<'def>)

Remove a schedule annotation from a table.

§

RemoveView(<ViewDef as ModuleDefLookup>::Key<'def>)

Remove a view and corresponding view table

§

RemoveRowLevelSecurity(<RawRowLevelSecurityDefV9 as ModuleDefLookup>::Key<'def>)

Remove a row-level security query.

§

RemoveTable(<TableDef as ModuleDefLookup>::Key<'def>)

Remove an empty table and all its sub-objects (indexes, constraints, sequences). Validated at execution time: fails if the table contains data.

§

ChangeColumns(<TableDef as ModuleDefLookup>::Key<'def>)

Change the column types of a table, in a layout compatible way.

This should be done before any new indices are added.

§

AddColumns(<TableDef as ModuleDefLookup>::Key<'def>)

Add columns to a table, in a layout-INCOMPATIBLE way.

This is a destructive operation that requires first running a DisconnectAllUsers.

The added columns are guaranteed to be contiguous and at the end of the table. They are also guaranteed to have default values set.

When this step is present, no ChangeColumns steps will be, for the same table.

§

AddTable(<TableDef as ModuleDefLookup>::Key<'def>)

Add a table, including all indexes, constraints, and sequences. There will NOT be separate steps in the plan for adding indexes, constraints, and sequences.

§

AddIndex(<IndexDef as ModuleDefLookup>::Key<'def>)

Add an index.

§

AddSequence(<SequenceDef as ModuleDefLookup>::Key<'def>)

Add a sequence.

§

AddSchedule(<ScheduleDef as ModuleDefLookup>::Key<'def>)

Add a schedule annotation to a table.

§

AddView(<ViewDef as ModuleDefLookup>::Key<'def>)

Add a view and corresponding view table

§

AddRowLevelSecurity(<RawRowLevelSecurityDefV9 as ModuleDefLookup>::Key<'def>)

Add a row-level security query.

§

ChangeAccess(<TableDef as ModuleDefLookup>::Key<'def>)

Change the access of a table.

§

ChangePrimaryKey(<TableDef as ModuleDefLookup>::Key<'def>)

Change the primary key of a table.

This updates the table_primary_key field in st_table to match the new module definition. Without this step, a stale primary key in the stored schema causes check_compatible to fail on the next publish. See: https://github.com/clockworklabs/SpacetimeDB/issues/3934

§

UpdateView(<ViewDef as ModuleDefLookup>::Key<'def>)

Recompute a view, update its backing table, and push updates to clients

§

DisconnectAllUsers

Disconnect all users connected to the module.

Trait Implementations§

Source§

impl<'def> Debug for AutoMigrateStep<'def>

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<'def> Ord for AutoMigrateStep<'def>

Source§

fn cmp(&self, other: &AutoMigrateStep<'def>) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl<'def> PartialEq for AutoMigrateStep<'def>

Source§

fn eq(&self, other: &AutoMigrateStep<'def>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<'def> PartialOrd for AutoMigrateStep<'def>

Source§

fn partial_cmp(&self, other: &AutoMigrateStep<'def>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl<'def> Eq for AutoMigrateStep<'def>

Source§

impl<'def> StructuralPartialEq for AutoMigrateStep<'def>

Auto Trait Implementations§

§

impl<'def> Freeze for AutoMigrateStep<'def>

§

impl<'def> RefUnwindSafe for AutoMigrateStep<'def>

§

impl<'def> Send for AutoMigrateStep<'def>

§

impl<'def> Sync for AutoMigrateStep<'def>

§

impl<'def> Unpin for AutoMigrateStep<'def>

§

impl<'def> UnsafeUnpin for AutoMigrateStep<'def>

§

impl<'def> UnwindSafe for AutoMigrateStep<'def>

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<Q, K> Comparable<K> for Q
where Q: Ord + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn compare(&self, key: &K) -> Ordering

Compare self to key and return their ordering.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.