Running the examples
Source code for the example applications is in electric-sql/electric/examples. Each application has a README.md
that you can follow, with the primary steps as follows:
Install dependencies:
npm install
Run the backend services (Postgres + Electric):
npm run backend:start
Apply database migrations:
npm run db:migrate
Use the database schema to generate your type-safe Client:
npm run client:generate
(Or npm run client:watch
to monitor for database schema changes and auto-generate the client whenever the schema changes.)
Start the app:
npm run dev
Running your own Postgres
npm run backend:start
uses Docker Compose to start a connected Postgres and Electric. To run the Electric sync service on top of an existing Postgres instead, make sure that:
- your Postgres is up and running and configured with
wal_level = 'logical'
- you don't already have a publication called
electric_publication
- you have a database user with adequate permissions for your write mode -- the simplest being
SUPERUSER
Connecting Electric to Postgres
The Electric sync service connects to Postgres using the DATABASE_URL
environment variable. Depending on your choice of write mode, Postgres may also need to connect to Electric to consume a logical replication publication.
If so, this is configured using the LOGICAL_PUBLISHER_HOST
(and LOGICAL_PUBLISHER_PORT
) environment variables:
|<--------DATABASE_URL----------|
Postgres | | Electric
|-----LOGICAL_PUBLISHER_HOST--->|
See API -> Sync service for more information.