pub enum InternalSchemaState {
Unmigrated,
TooOld {
found: i32,
required: i32,
},
Behind {
found: i32,
current: i32,
},
Current,
Newer {
found: i32,
current: i32,
},
}Expand description
How a database’s internal schema relates to the one this build expects.
The classification is deliberately separate from what any caller does
about it: pylon-server refuses to start on TooOld while a client
raises, and both merely note Behind, but the rule for which is which
belongs in one place.
Variants§
Unmigrated
No _pylon."Internal" row — a database no migration has ever run
against. Legal, and not a mismatch: callers should behave exactly as
they did before this check existed rather than treat it as an error.
TooOld
Older than MIN_SUPPORTED_INTERNAL_VERSION: this build cannot work
against it. The only fix is pylon migration apply.
Behind
Behind this build but still within its supported range — an upgrade is pending and everything works meanwhile.
Current
Exactly what this build writes.
Newer
Written by a newer build. Reported, never fatal: this is what a rollback looks like, and failing closed would turn the recovery lever into a second outage.
Implementations§
Trait Implementations§
Source§impl Clone for InternalSchemaState
impl Clone for InternalSchemaState
impl Copy for InternalSchemaState
Source§impl Debug for InternalSchemaState
impl Debug for InternalSchemaState
impl Eq for InternalSchemaState
Source§impl PartialEq for InternalSchemaState
impl PartialEq for InternalSchemaState
impl StructuralPartialEq for InternalSchemaState
Auto Trait Implementations§
impl Freeze for InternalSchemaState
impl RefUnwindSafe for InternalSchemaState
impl Send for InternalSchemaState
impl Sync for InternalSchemaState
impl Unpin for InternalSchemaState
impl UnsafeUnpin for InternalSchemaState
impl UnwindSafe for InternalSchemaState
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.