Chronicle.Events.Migrators (cratis_chronicle v1.0.3)

Copy Markdown View Source

Discovers, groups, and materializes event type migrations.

Chronicle.Events.EventTypes uses this module while registering event types so each event type registration includes its known generations and migration chain.

Summary

Functions

Returns all registered migration modules.

Builds the registration definition for a migration module.

Returns the migration modules for an event type module or event type id.

Returns all known generations for an event type.

Creates a migrator registry from migration modules.

Types

definition()

@type definition() :: %{
  from_generation: pos_integer(),
  to_generation: pos_integer(),
  upcast_jmes_path: String.t(),
  downcast_jmes_path: String.t()
}

migration_module()

@type migration_module() :: module()

t()

@type t() :: %Chronicle.Events.Migrators{
  all: [migration_module()],
  by_event_type: %{optional(String.t()) => [migration_module()]}
}

Functions

all(migrators)

@spec all(t()) :: [migration_module()]

Returns all registered migration modules.

definition_for(migration_module)

@spec definition_for(migration_module()) :: definition()

Builds the registration definition for a migration module.

for_event_type(migrators, event_type)

@spec for_event_type(t(), module() | String.t()) :: [migration_module()]

Returns the migration modules for an event type module or event type id.

generations_for(migrators, event_type)

@spec generations_for(t(), module() | String.t()) :: [pos_integer()]

Returns all known generations for an event type.

new(migration_modules \\ [])

@spec new([migration_module()]) :: t()

Creates a migrator registry from migration modules.