Localize Ecto version 1.0.0-rc.0
[1.0.0-rc.0] - 2026-07-28
The 1.0 release candidate. localize_ecto now supports SQLite as well as PostgreSQL, with the same locale resolving to the same collation on both.
Added
-
SQLite support via
localize_icu, a bundled SQLite loadable extension that registers ICU collations under the same names PostgreSQL uses. The same locale sorts identically on both databases. -
Localize.Ecto.SQLite3providescollate/1,2,lower/1,2,upper/1,2andinitcap/1,2for SQLite. BCP 47 tailorings such as-u-co-phonebkneed no migration; collations are registered on demand. -
Localize.Ecto.SQLite3.Extensionlocates the compiled extension for the:load_extensionsoption of Exqlite andEcto.Adapters.SQLite3. -
Localize.Ecto.Postgresnames the PostgreSQL macros explicitly, alongside the new SQLite module.
Notes
- SQLite compares canonically equivalent strings (the NFC and NFD forms of
café) as equal where PostgreSQL, using deterministic collations, compares them as unequal. Ordering agrees on both; normalizing on write removes the difference.
Changed
-
The SQLite extension is an opt-in build (
config :localize_ecto, :sqlite_icu, true, orLOCALIZE_ECTO_SQLITE_ICU=true). Without it the package stays pure Elixir and PostgreSQL users are unaffected. -
Query macros emit Ecto's
identifier/1rather than the deprecatedliteral/1. The generated SQL is unchanged.