Release notes
ElectricSQL is in public alpha phase.
APIs are not guaranteed to be stable. Backwards incompatible changes may (and will) be introduced in patch, minor and major version releases.
This page provides an overview of major releases as well as minor- and patch-level releases that may cause compatibility issues for user apps. Such potentially problematic changes are highlighted in Compatibility notes sections for every release that includes those.
To learn more about the major feature releases of Electric, see release announcement posts on our blog.
To see the complete change log for each new release, see the Releases page on GitHub or the CHANGELOG.md
file of each individual component:
2024-06-19 - patch release
Component | Version |
---|---|
Sync service | 0.12.1 |
TypeScript client | 0.12.1 |
debug-toolbar | 2.0.1 |
Compatibility notes
TypeScript client
- Dropped support for Node v16.
- The
disableForeignKeysDownstream
configuration option has been renamed toforeignKeyChecksDownstream
and its type changed from a boolean to an enum. Foreign key checks for downstream changes are now disabled by default. See https://electric-sql.com/docs/api/clients/typescript#available-options for details.
2024-06-10 - v0.12
Component | Version |
---|---|
Sync service | 0.12.0 |
TypeScript client | 0.12.0 |
create-electric-app | 0.3.2 |
debug-toolbar | 2.0.0 |
Compatibility notes
Sync service
- The default value for
DATABASE_REQUIRE_SSL
was reset tofalse
in v0.9.1 by accident, after it had been set totrue
in v0.9.0. This release restores the intended behaviour of havingDATABASE_REQUIRE_SSL=true
by default. To use unencrypted database connections, you must explicitly configure Electric withDATABASE_REQUIRE_SSL=false
.
2024-05-14 - v0.11
This release introduces a new database driver for PGLite, enabling client applications to use a local Postgres database. It is also the first release to maintain replication stream continuity in the face of the sync service's restarts.
Updated components
Component | Version |
---|---|
Sync service | 0.11.1 |
TypeScript client | 0.11.2 |
create-electric-app | 0.3.1 |
Compatibility notes
Sync service
Electric no longer tries to decode the JWT signing key by default. A new configuration option
AUTH_JWT_KEY_IS_BASE64_ENCODED
has been added to let the developer choose whether Electric should use the configured signing key as is or base64-decode it first.The default value for
DATABASE_USE_IPV6
is nowfalse
. Using IPv6 by default turned out to cause problems that could have been avoided by sticking to IPv4. ISPs, Docker, hosting platforms do not all have seamless IPv6 support just yet.
2024-04-10 - v0.10
The first release to support where-clause and include-tree filtering with Shape-based sync. It also adds data type support for byte arrays / blobs.
Updated components
Component | Version |
---|---|
Sync service | 0.10.0 |
TypeScript client | 0.10.0 |
@electric-sql/prisma-generator | 1.1.4 |
Compatibility notes
This release does not introduce any noteable breaking changes.
2024-03-14 - patch release
Updated components
Component | Version |
---|---|
Sync service | 0.9.4 |
TypeScript client | 0.9.5 |
Compatibility notes
TypeScript client
- The
react-native-get-random-values
package is no longer included as a dependency of the client. It is up to the developer to add it as a dependency to their app to use a better random number generator for UUIDs generated on the client. - The
cordova-sqlite-storage
driver support has been removed. - The
react-native-sqlite-storage
driver support has been removed, replaced by theop-sqlite
driver which is a better tested and more mature option for using SQLite with React Native. - The minimum required version for the
@capacitor-community/sqlite
driver has been bumped.
2024-02-22 - patch release
Updated components
Component | Version |
---|---|
Sync service | 0.9.3 |
TypeScript client | 0.9.4 |
create-electric-app | 0.2.8 |
Compatibility notes
Sync service
- A change in the internal representation of electrified tables with columns of enum types may cause issues with SQL schemas that have such tables. Reset the database to resolve these issues.
- Electric now refuses to start if any of the secure auth settings are used with
AUTH_MODE=insecure
. - Electrification of tables outside of the public schema is now rejected.
- Electric now performs SSL certificate validation for database connections with
DATABASE_REQUIRE_SSL=true
(the default). - When
AUTH_MODE=secure
and one of theHS*
signature validation algorithms is configured, Electric will now try to detect if the value ofAUTH_JWT_KEY
is base64-encoded and will decode it automatically.
TypeScript client
- Connecting to the sync service has been detached from the electrification of a database connection. You now have to call
electric.connect()
as a separate step. See API -> Typescript client for details. - The
connectivityState
of the client is now read-only. A separatedisconnect()
method has been introduced to disconnect the client from the sync service.
2024-01-24 - v0.9
This release introduces a whole new client CLI, experimental support for enum types, configuration improvements for the sync service and more.
Updated components
Component | Version |
---|---|
Sync service | 0.9.1 |
TypeScript client | 0.9.1 |
create-electric-app | 0.2.5 |
@electric-sql/prisma-generator | 1.1.3 |
Compatibility notes
Sync service
- Electrification of tables that have no PRIMARY KEY or include unsupported constraints is now rejected.
- Table column types and constraints for new columns that are added to electrified tables with
ALTER TABLE ... ADD COLUMN
are now validated in the same way as when electrifying a table. - Attempt to add a new foreign key to an electrified table with
ALTER TABLE ... ADD COLUMN
statements are now rejected. - By default, Electric now enforces the use of SSL for database connections. If the database does not have SSL enabled, Electric can be started with
DATABASE_REQUIRE_SSL=false
as a workaround.
TypeScript client
- The
raw
API now throws for unsafe queries, i.e. anything other than read-only queries. This matches the behaviour ofliveRaw
. - New
unsafeExec
API has been added to allow modifying the database, side-stepping the type-safe client checks. - The
raw
andliveRaw
query APIs have been deprecated in favour ofrawQuery
,liveRawQuery
andunsafeExec
.
create-electric-app
- Apps created with
create-electric-app
now use Vite as the dev server and build tool.
2023-12-13 - v0.8
This release improves data model and deployment compatibility, including support for JSON and running on popular managed Postgres and application hosts, such as Supabase and DigitalOcean.
Updated components
Component | Version |
---|---|
Sync service | 0.8.1 |
TypeScript client | 0.8.2 |
create-electric-app | 0.2.2 |
@electric-sql/prisma-generator | 1.1.2 |
Compatibility notes
Sync service
- Attempts to update primary key columns in electrified tables are now rejected.
TypeScript client
- Table names are preserved in the generated type-safe client, i.e.
snake_cased
table names are no longer transformed toPascalCased
model names. However, there's still a minor caveat to be aware of. - Prisma and the electric client generator are now dependencies of the TypeScript client. You no longer have to include them as dependencies of your web app. As a consequence, projects can use a different version of Prisma as a direct dependency.
2023-11-02 - v0.7
Major highlights of this release are the introduction of the Migrations proxy and support for additional column types in electrified tables.
Updated components
Component | Version |
---|---|
Sync service | 0.7.0 |
TypeScript client | 0.7.0 |
create-electric-app | 0.2.0 |
@electric-sql/prisma-generator | 1.1.0 |
Compatibility notes
Sync service
- Migrations proxy ia a new component running as part of the sync service. Its introduction affects the
DATABASE_URL
used when applying database migrations that contain DDLX statements.
TypeScript client
- The minimum supported version of
capacitor-community/sqlite
has been increated to5.4.1
to enable Android support.
create-electric-app
- Apps created with
create-electric-app
now also listen on port 65432 which is used by the Migrations proxy.
2023-09-20 - v0.6
The first public release of ElectricSQL as a self-hosted sync layer on top of PostgreSQL.