Skip to main content

InitMigration

Struct InitMigration 

Source
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 aggregate
  • data - 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 on aggregator_type
  • idx_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 identifier
  • type - Snapshot type
  • cursor - Event stream cursor
  • revision - Revision identifier
  • data - 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 ID
  • cursor - Current event stream position
  • lag - Subscription lag counter
  • enabled - Whether subscription is active
  • created_at / updated_at - Timestamps

Trait Implementations§

Source§

impl Migration<MySql> for InitMigration

Source§

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

Returns the migration name, typically the file name without the extension. Read more
Source§

fn parents(&self) -> Vec<Box<dyn Migration<MySql>>>

Returns the list of parent migrations that must be applied before this migration can be applied. Read more
Source§

fn operations(&self) -> Vec<Box<dyn Operation<MySql>>>

Returns the list of operations that make up the migration. Read more
Source§

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>>>

Returns the list of migrations that should be run before this migration when applying. but when reverting this migration these migrations should be reverted after this migration is reverted. Read more
Source§

fn is_atomic(&self) -> bool

Indicates whether the migration is atomic. By default, this function returns true, meaning the migration is atomic. Read more
Source§

fn is_virtual(&self) -> bool

Indicates whether the migration is virtual. By default, this function returns false, meaning the migration is not virtual. Read more
Source§

impl Migration<Postgres> for InitMigration

Source§

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

Returns the migration name, typically the file name without the extension. Read more
Source§

fn parents(&self) -> Vec<Box<dyn Migration<Postgres>>>

Returns the list of parent migrations that must be applied before this migration can be applied. Read more
Source§

fn operations(&self) -> Vec<Box<dyn Operation<Postgres>>>

Returns the list of operations that make up the migration. Read more
Source§

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>>>

Returns the list of migrations that should be run before this migration when applying. but when reverting this migration these migrations should be reverted after this migration is reverted. Read more
Source§

fn is_atomic(&self) -> bool

Indicates whether the migration is atomic. By default, this function returns true, meaning the migration is atomic. Read more
Source§

fn is_virtual(&self) -> bool

Indicates whether the migration is virtual. By default, this function returns false, meaning the migration is not virtual. Read more
Source§

impl Migration<Sqlite> for InitMigration

Source§

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

Returns the migration name, typically the file name without the extension. Read more
Source§

fn parents(&self) -> Vec<Box<dyn Migration<Sqlite>>>

Returns the list of parent migrations that must be applied before this migration can be applied. Read more
Source§

fn operations(&self) -> Vec<Box<dyn Operation<Sqlite>>>

Returns the list of operations that make up the migration. Read more
Source§

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>>>

Returns the list of migrations that should be run before this migration when applying. but when reverting this migration these migrations should be reverted after this migration is reverted. Read more
Source§

fn is_atomic(&self) -> bool

Indicates whether the migration is atomic. By default, this function returns true, meaning the migration is atomic. Read more
Source§

fn is_virtual(&self) -> bool

Indicates whether the migration is virtual. By default, this function returns false, meaning the migration is not virtual. 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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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: 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> 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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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