Skip to content

Releases: circles-learning-labs/ecto_adapters_dynamodb

Ecto 3 support

22 May 13:05
Compare
Choose a tag to compare

This major version release adds support for Ecto 3! Additionally, this release features:

  • Support for the latest version of DynamoDB local (1.11.478 at the time of this release)
  • Support for the time-to-live attribute in migrations
  • Fixes a bug where select clauses in queries were not working correctly
  • Fixes a bug where source-mapped fields were not being loaded correctly
  • Improved performance by avoiding encoding data structures for unwritten logs
  • Support for delete_all operations in excess of 25 records
  • Improved documentation and setup instructions
  • Improved tests and test coverage

Currently, this release does not have support for Ecto 3's lock_for_migrations/4, checkout/3, and stream/5 - these are flagged in the "Issues" section of this repo as "help wanted" - if you have any insight into how or whether these features should be supported for DynamoDB, please weigh in on them there!

If you are upgrading from version 1.X.X to version 2.X.X of the adapter (Ecto 2.X.X to Ecto 3.X.X, respectively), see the upgrade guide, or reference Ecto's documentation on this subject.

Improve setup documentation, correctly set ex_aws config variables, support latest DDB local

11 Apr 18:11
Compare
Choose a tag to compare

The setup instructions in the README have been revised and clarified, and some missing details have been filled in.

In earlier beta/alpha releases, the adapter was failing to pass some of its config values to :ex_aws - this has been resolved, the configuration shown in the README will now work correctly.

The latest versions of production DDB and DDB local (1.11.478) no longer returns a "BillingModeSummary" for tables with provisioned throughput when describe_table is called on those tables; this release fixes a bug that was caused by that missing key, but allows for backwards compatibility for local version 1.11.477 - though it is recommended that users should update to the latest version locally. See #53 for more information on this.

Ecto version 3.X.X support - beta release

23 Mar 21:29
Compare
Choose a tag to compare

We're feeling confident about the integrity of this release, so we are promoting it to "beta" status.

This release also includes support for delete_all operations in excess of 25 records and improved test coverage.

migration_source refactor

14 Mar 13:07
Compare
Choose a tag to compare
Pre-release

This patch release includes the correct refactor for the issue described in #38, as well as additional code cleanup.

Fix bug, remove unused/unnecessary code, improved performance

03 Mar 02:57
Compare
Choose a tag to compare

A few small fixes and tweaks in this patch -

  • Fix a bug introduced in commit f886c62 (2.0.0-alpha.2)

  • Remove some commented-out code that's no longer in use, and remove unnecessary MapSet decoding, which is now handled by the ExAws Dynamo dependency.

  • Improved performance by avoiding encoding data structures for logs that are not being written.

Fix source-mapped fields

27 Feb 15:07
Compare
Choose a tag to compare
Pre-release

This alpha release patches a bug where the values for source-mapped fields were not being loaded correctly.

Fix broken query :select clause behavior

25 Feb 15:20
Compare
Choose a tag to compare

This alpha release amends :select clauses in queries, which were broken in the previous release.

Ecto version 3.X.X support - alpha release

22 Feb 21:51
Compare
Choose a tag to compare

This release is our first take at providing support for Ecto version 3.X.X!

Currently, all of the existing tests are passing and we've been able to successfully integrate this into one of our applications seemingly without problem - but this release probably should not yet be treated as production-ready.

If you are already using this adapter in conjunction with Ecto version 2.X.X, you'd want to follow Ecto's upgrade guide in terms of identifying any breaking changes (most notably, the adapter is no longer specified in your app's configuration, but rather in the module where you define your app's repo). I've added a bit about this in the README.

There are a few notable things-to-do, for which I'll be creating "To-do" issues:

  • Consider adding support for stream/5 (see `lib/ecto_adapters_dynamodb.ex)

  • Consider adding support for checkout/3 (see `lib/ecto_adapters_dynamodb.ex)

  • Consider adding support for lock_for_migrations/4 (see `lib/ecto_adapters_dynamodb.ex)

  • Clean up/improve tests and add additional test cases

    • make sure tests cover all types specified in decode_type/2, including MapSet and embedded MapSet
    • add tests for scenarios where insert_nil_fields config option has been set to false
    • add tests for scenarios where remove_nil_fields_on_update config option has been set to true
  • Generally improve documentation

Don't hesitate to jump in and get your hands dirty! We appreciate all support from the community.

Support Ecto composite primary keys

13 Nov 15:40
Compare
Choose a tag to compare

This minor version release adds update and delete support for Ecto models where two primary keys have been set for a model with a DynamoDB composite primary key. Previously, an operation like:

Repo.get_by(BookPage, [id: "gatsby", page_num: 1])
|> Repo.delete

(where id and page_num were both identified on the model as primary keys and both make up a DDB composite primary key) would fail if there were multiple records with the id "gatsby"; the same would occur for update actions. These behaviors are now supported.

This release also includes a minor version update to the ex_aws_dynamo dependency, and patch version updates to the hackney and ssl_verify_fun deps.

Update ex_aws_dynamo dep

29 Aug 16:41
Compare
Choose a tag to compare

This release updates the ex_aws_dynamo dependency, which was updated to fix its handling of binary data types.