pub struct InitMigration;Expand description
Initial migration that creates the core database schema for Evento.
This migration creates the following database objects:
§Event Table
The main table for storing domain events with the following columns:
id- Event identifier (ULID format, VARCHAR(26))name- Event type name (VARCHAR(50))aggregator_type- Aggregate root type (VARCHAR(50))aggregator_id- Aggregate root instance ID (VARCHAR(26))version- Event sequence number within the aggregatedata- Serialized event payload (BLOB)metadata- Serialized event metadata (BLOB)routing_key- Optional routing key for partitioning (VARCHAR(50))timestamp- Event timestamp in seconds (BIGINT)
§Event Indexes
Several indexes are created for efficient querying:
idx_event_type- Index onaggregator_typeidx_event_type_id- Composite index on(aggregator_type, aggregator_id)idx_event_routing_key_type- Composite index on(routing_key, aggregator_type)- Unique constraint on
(aggregator_type, aggregator_id, version)
§Snapshot Table
Table for storing aggregate snapshots (note: dropped in M0003):
id- Snapshot identifiertype- Snapshot typecursor- Event stream cursorrevision- Revision identifierdata- Serialized snapshot data- Primary key: composite
(type, id)
§Subscriber Table
Table for tracking event subscription state:
key- Subscriber identifier (primary key)worker_id- Associated worker IDcursor- Current event stream positionlag- Subscription lag counterenabled- Whether subscription is activecreated_at/updated_at- Timestamps
Trait Implementations§
Source§impl Migration<MySql> for InitMigration
impl Migration<MySql> for InitMigration
Source§fn app(&self) -> &str
fn app(&self) -> &str
Returns the application name associated with the migration.
This can be the name of the folder or library where the migration is
located. Read more
Source§fn name(&self) -> &str
fn name(&self) -> &str
Returns the migration name, typically the file name without the
extension. Read more
Source§fn parents(&self) -> Vec<Box<dyn Migration<MySql>>>
fn parents(&self) -> Vec<Box<dyn Migration<MySql>>>
Returns the list of parent migrations. Read more
Source§fn operations(&self) -> Vec<Box<dyn Operation<MySql>>>
fn operations(&self) -> Vec<Box<dyn Operation<MySql>>>
Returns the operations associated with this migration. Read more
Source§fn replaces(&self) -> Vec<Box<dyn Migration<DB>>>
fn replaces(&self) -> Vec<Box<dyn Migration<DB>>>
Returns the list of migrations that this migration replaces. Read more
Source§fn run_before(&self) -> Vec<Box<dyn Migration<DB>>>
fn run_before(&self) -> Vec<Box<dyn Migration<DB>>>
Returns the list of migrations that this migration must run before(when
applying) or after (when reverting). Read more
Source§fn is_atomic(&self) -> bool
fn is_atomic(&self) -> bool
Indicates whether the migration is atomic.
By default, this function returns
true, meaning the migration is
atomic. Read moreSource§fn is_virtual(&self) -> bool
fn is_virtual(&self) -> bool
Indicates whether the migration is virtual.
By default, this function returns
false, meaning the migration is not
virtual. Read moreSource§impl Migration<Postgres> for InitMigration
impl Migration<Postgres> for InitMigration
Source§fn app(&self) -> &str
fn app(&self) -> &str
Returns the application name associated with the migration.
This can be the name of the folder or library where the migration is
located. Read more
Source§fn name(&self) -> &str
fn name(&self) -> &str
Returns the migration name, typically the file name without the
extension. Read more
Source§fn parents(&self) -> Vec<Box<dyn Migration<Postgres>>>
fn parents(&self) -> Vec<Box<dyn Migration<Postgres>>>
Returns the list of parent migrations. Read more
Source§fn operations(&self) -> Vec<Box<dyn Operation<Postgres>>>
fn operations(&self) -> Vec<Box<dyn Operation<Postgres>>>
Returns the operations associated with this migration. Read more
Source§fn replaces(&self) -> Vec<Box<dyn Migration<DB>>>
fn replaces(&self) -> Vec<Box<dyn Migration<DB>>>
Returns the list of migrations that this migration replaces. Read more
Source§fn run_before(&self) -> Vec<Box<dyn Migration<DB>>>
fn run_before(&self) -> Vec<Box<dyn Migration<DB>>>
Returns the list of migrations that this migration must run before(when
applying) or after (when reverting). Read more
Source§fn is_atomic(&self) -> bool
fn is_atomic(&self) -> bool
Indicates whether the migration is atomic.
By default, this function returns
true, meaning the migration is
atomic. Read moreSource§fn is_virtual(&self) -> bool
fn is_virtual(&self) -> bool
Indicates whether the migration is virtual.
By default, this function returns
false, meaning the migration is not
virtual. Read moreSource§impl Migration<Sqlite> for InitMigration
impl Migration<Sqlite> for InitMigration
Source§fn app(&self) -> &str
fn app(&self) -> &str
Returns the application name associated with the migration.
This can be the name of the folder or library where the migration is
located. Read more
Source§fn name(&self) -> &str
fn name(&self) -> &str
Returns the migration name, typically the file name without the
extension. Read more
Source§fn parents(&self) -> Vec<Box<dyn Migration<Sqlite>>>
fn parents(&self) -> Vec<Box<dyn Migration<Sqlite>>>
Returns the list of parent migrations. Read more
Source§fn operations(&self) -> Vec<Box<dyn Operation<Sqlite>>>
fn operations(&self) -> Vec<Box<dyn Operation<Sqlite>>>
Returns the operations associated with this migration. Read more
Source§fn replaces(&self) -> Vec<Box<dyn Migration<DB>>>
fn replaces(&self) -> Vec<Box<dyn Migration<DB>>>
Returns the list of migrations that this migration replaces. Read more
Source§fn run_before(&self) -> Vec<Box<dyn Migration<DB>>>
fn run_before(&self) -> Vec<Box<dyn Migration<DB>>>
Returns the list of migrations that this migration must run before(when
applying) or after (when reverting). Read more
Source§fn is_atomic(&self) -> bool
fn is_atomic(&self) -> bool
Indicates whether the migration is atomic.
By default, this function returns
true, meaning the migration is
atomic. Read moreSource§fn is_virtual(&self) -> bool
fn is_virtual(&self) -> bool
Indicates whether the migration is virtual.
By default, this function returns
false, meaning the migration is not
virtual. Read moreAuto Trait Implementations§
impl Freeze for InitMigration
impl RefUnwindSafe for InitMigration
impl Send for InitMigration
impl Sync for InitMigration
impl Unpin for InitMigration
impl UnwindSafe for InitMigration
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§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>
Returns the layout of the type.
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
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.