Supabase
Supabase โ is an open source Firebase alternative and a PostgreSQL database service that offers real-time functionality, database backups, and extensions. With Supabase, developers can quickly set up a PostgreSQL database and build applications.
Database Integrations allow you to connect to a database from your Worker by getting the right configuration from your database provider and adding it as secrets to your Worker.
To set up an integration with Supabase:
-
You need to have an existing Supabase database to connect to. Create a Supabase database โ or have an existing database to connect to Supabase and load data from โ.
-
Create a
countries
table with the following query. You can create a table in your Supabase dashboard in two ways:- Use the table editor, which allows you to set up Postgres similar to a spreadsheet.
- Alternatively, use the SQL editor โ:
CREATE TABLE countries (id SERIAL PRIMARY KEY,name VARCHAR(255) NOT NULL); -
Insert some data in your newly created table. Run the following commands to add countries to your table:
INSERT INTO countries (name) VALUES ('United States');INSERT INTO countries (name) VALUES ('Canada');INSERT INTO countries (name) VALUES ('The Netherlands'); -
Add the Supabase database integration to your Worker:
- Log in to the Cloudflare dashboard โ and select your account.
- In Account Home, select Workers & Pages.
- In Overview, select your Worker.
- Select Integrations > Supabase.
- Follow the setup flow, selecting the database created in step 1.
-
In your Worker, install the
@supabase/supabase-js
driver to connect to your database and start manipulating data:Terminal window npm install @supabase/supabase-js -
The following example shows how to make a query to your Supabase database in a Worker. The credentials needed to connect to Supabase have been automatically added as secrets to your Worker through the integration.
import { createClient } from '@supabase/supabase-js';export default {async fetch(request, env) {const supabase = createClient(env.SUPABASE_URL, env.SUPABASE_KEY);const { data, error } = await supabase.from("countries").select('*');if (error) throw error;return new Response(JSON.stringify(data), {headers: {"Content-Type": "application/json",},});},};
To learn more about Supabase, refer to Supabase's official documentation โ.