View Source Changelog

1.4.0

Enhancements

  • Use an UPSERT SQL query to insert or update the projection version (#52).

1.3.0

Enhancements

  • Fix Elixir 1.14 compilation warnings (#45).

1.2.1

Enhancements

  • Allow exceptions to be rescued by Commanded's event handler (#37).

1.2.0

Enhancements

  • Support runtime projector names (#32).
  • Support schema_prefix/2 function (#33).

1.1.0

Enhancements

  • Dynamic schema prefix (#28).
  • Support Commanded v1.1.0.

1.0.0

Enhancements

  • Support multiple Commanded apps (#25).
  • Add .formatter.exs to Hex package (#19).
  • Add microseconds to timestamp fields in projection_versions (#22).

0.8.0

Enhancements

  • Upgrade to Ecto v3 (#17).

  • Use lambda instead of unhygienic var in projection macros (#13).

    Previously magic multi:

    project %AnEvent{name: name}, _metadata do
      Ecto.Multi.insert(multi, :example_projection, %ExampleProjection{name: name})
    end

    Now multi is provided as a argument to the project function:

    project %AnEvent{name: name}, _metadata, fn multi ->
      Ecto.Multi.insert(multi, :example_projection, %ExampleProjection{name: name})
    end

    The previous do block approach is still supported, but has been deprecated. It will be removed in the next release.


0.7.1

Bug fixes

  • Ensure errors encountered while building the Ecto.Multi data structure within a project function are caught and passed to the error/3 callback.

0.7.0

Enhancements

  • Support Commanded's event handler error/3 callback (#12).

0.6.0

Enhancements

  • Pass through any additional projector configuration options to Commanded event handler. Allows new Commanded features to be used without updating this library (e.g. specify consistency option).

0.5.0

Enhancements

  • Allow an Ecto schema prefix to be defined in config or per handler (#4).

0.4.0

Enhancements