Skip to main content

MigrateOptions

Struct MigrateOptions 

Source
pub struct MigrateOptions {
    pub version_storage: VersionStorage,
    pub backup: bool,
    pub backup_options: Option<DbOptions>,
    pub forward_compatible: Option<fn(&Connection) -> bool>,
    pub optimize_after: bool,
    pub legacy_versions: Option<LegacyVersionTable>,
}

Fields§

§version_storage: VersionStorage

Version location shared by reads and transactional migration writes.

§backup: bool

Take a pre-migration backup when migrating an existing (version > 0) on-disk database.

§backup_options: Option<DbOptions>

Key source for the backup (SQLCipher); DbOptions::open_writer_migrated fills this in.

§forward_compatible: Option<fn(&Connection) -> bool>

For a database newer than this build: true means the subset this build reads/writes is intact, so open it read-write without migrating.

§optimize_after: bool

Refresh planner statistics after migrating (PRAGMA optimize).

§legacy_versions: Option<LegacyVersionTable>

Adopt an existing app version table (see MigrateOptions::import_legacy_versions). Default none.

Implementations§

Source§

impl MigrateOptions

Source

pub fn import_legacy_versions(self, legacy: LegacyVersionTable) -> Self

Adopt the applied version of an app’s existing version table, once, so its migrations are not re-run. Applies only when the configured storage reads version 0 and the legacy table’s highest version is above zero. The configured storage is then seeded to that version (a VersionTable gets one row per version up to it), and the migrations up to it are skipped. The legacy table is only read, never written. Idempotent: once seeded, the configured storage is above zero, so later opens do not consult the legacy table. Rolling back to version 0 while the legacy table still exists re-adopts it on the next open, so drop or rename that table after adoption. A legacy version above this build’s newest migration is refused as DbError::NewerDatabase and nothing is written.

Trait Implementations§

Source§

impl Clone for MigrateOptions

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Default for MigrateOptions

Source§

fn default() -> Self

Returns the “default value” for a type. 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, 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> 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 = !

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

fn try_from(value: U) -> Result<T, !>

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.