- Large Structs: If your struct encodes to a size larger than 100,000 Bytes, it will now be split across several FDB key-values automatically. Previously, EctoFDB did not attempt to detect this and allowed FoundationDB to throw error code 2103: "value_too_large - Value length exceeds limit". See documentation for configuration options.
EctoFoundationDB.Sandbox
now usesm:erlfdb_sandbox
. Sandbox directory name is now.erlfdb_sandbox
. Directories named.erlfdb
should be removed.
- Upgrade erlfdb to v0.2.2
- Fixed consistency issue with index updates. Previously, the old index key was still queryable.
- Fixed write amplification issue when updating struct's non-indexed fields.
- Added
fdb_api_counting_text.exs
which tests and documents the:erlfdb
operations that our Layer is expected to make.
Databases that have been created using a prior version of EctoFoundationDB will be broken on EctoFDB v0.3 and above. Please start a new database with EctoFDB v0.3. If you currently have a database on v0.2 or earlier, please submit an issue to discuss the upgrade path.
- Watches: Support for FDB Watches, which is like a database-driven PubSub on an Ecto struct.
- Directory Tenants: A new default backend for Multitenancy that is production-ready. Managed tenants have been moved to "Experimental" status.
@schema_context usetenant: true
is no longer required.- The
:open_db
option now defines a 1-arity function that accepts the Repo module.
- Upgrade erlfdb to 0.2.1, allowing Livebook Desktop to discover fdbcli location in /usr/local/bin
- Upserts: Support for Ecto options
:on_conflict
and:conflict_target
- Pipelining: New Repo functions for async/await within a transaction.
- TESTING.md: Document to describe how to set up a Sandbox
- CHANGELOG.md: This file!