WARNING
This post describes a release of an old version of Electric that's no longer active. See the Electric Next post for context.
Version 0.8 of ElectricSQL has now been released. 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 Digital Ocean.
Additional Type Support including JSON
This release brings a wider range of supported Postgres types:
- Electric now supports JSON with Postgres
JSONB
columns - When using our DAL, javascript objects are automatically serialised to JSON when inserted into a JSON column, and, in reverse, converted back to an object when loading from the database.As the client is backed by a local SQLite database you can use all of SQLite’s JSON function to query and modify JSON within the database. - Support for
BIGINT
/INT8
andREAL
/FLOAT
Postgres types
From Superuser to Supabase
Previously, Electric has needed to connect to your Postgres with superuser permissions. This level of permission is not always available. This limited the Postgres hosts that you could use Electric with. This release removes this limitation, so you can now run Electric without superuser.
The groundwork for removing the need for superuser was laid in version 0.7, with the new migrations proxy. This release builds on this with a new "direct writes" mode of writing data from Electric into Postgres. This new mode does not require elevated privileges.
One of the key platforms that this unlocks compatibility with is Supabase. Supabase provides hosted Postgres with a suite of backend-as-a-service and AI tools. With this release, Electric now works out of the box with the managed Supabase Platform offering, as well as open source, self-host Supabase.
We have published details on how to use Electric with Supabase, and there are updated deployment instructions for additional platforms.
There is also have a great new Checkout Example app showing how to build a local-first checkout flow with Electric, using Supabase Postgres, Edge Functions and Auth.
The Proxy Tunnel
Many PaaS providers, such as Heroku and Digital Ocean App Platform, only enable you to expose one public port from your Docker container or service. As Electric exposes both a HTTP port for the client synchronisation connections, as well as a TCP port for connecting to the Postgres Proxy, this has made deploying to these platforms difficult.
With the release of v0.8 we now have a mode where you can tunnel the Postgres Proxy TCP connection over a web socket to a local port. This enables the generator command, migrations, and connecting to the proxy with psql, to work without direct access to the Migration Proxy.
You can see a nice example of this on the new Digital Ocean deployment docs.
Other changes
There are many other improvements in this release:
- Improved support for running Electric and the Node based dev tools on Windows.
- The Electric sync service now listens on both IPv6 and IPv4 by default.
- You can now use any version of Prisma for your app.
- Prisma and the
@electric-sql/prisma-generator
package can be removed as dependencies from your project.
For a full list of updated components see Release notes.