← Cloudflare Workers / workers / databases / third-party-integrations
Supabase
Supabase ↗ je open source alternativa k Firebase a databázová služba PostgreSQL, která nabízí funkce v reálném čase, zálohování databáze a rozšíření. Se Supabase mohou vývojáři rychle nastavit databázi PostgreSQL a vytvářet aplikace.
Nastavení klienta Supabase
Chcete-li nastavit integraci se službou Supabase:
-
Potřebujete existující databázi Supabase, ke které se připojíte. Vytvořte databázi Supabase ↗ nebo máte existující databázi, kterou chcete připojit k Supabase a načíst z ní data ↗.
-
Vytvořte
countriestabulku pomocí následujícího dotazu. Tabulku v dashboardu Supabase můžete vytvořit dvěma způsoby:- Použijte editor tabulek, který umožňuje nastavit Postgres podobně jako tabulkový procesor.
- Alternativně použijte SQL editor ↗:
CREATE TABLE countries ( id SERIAL PRIMARY KEY, name VARCHAR(255) NOT NULL ); -
Vložte nějaká data do nově vytvořené tabulky. Spuštěním následujících příkazů přidáte do tabulky země:
INSERT INTO countries (name) VALUES ('United States'); INSERT INTO countries (name) VALUES ('Canada'); INSERT INTO countries (name) VALUES ('The Netherlands'); -
Nakonfigurujte přihlašovací údaje databáze Supabase ve svém Workeru:
Do Workeru musíte jako secrets přidat URL adresu Supabase a anon key. Získáte je v Supabase Dashboard ↗ v části Nastavení > API, poté je přidejte jako secrets pomocí Wrangleru:
# Add the Supabase URL as a secret npx wrangler secret put SUPABASE_URL # When prompted, paste your Supabase project URL # Add the Supabase anon key as a secret npx wrangler secret put SUPABASE_KEY # When prompted, paste your Supabase anon/public key -
Ve svém Workeru nainstalujte
@supabase/supabase-jsovladač pro připojení k databázi a začněte pracovat s daty:npm i @supabase/supabase-js -
Následující příklad ukazuje, jak ve Workeru odeslat dotaz do databáze Supabase. Přihlašovací údaje potřebné pro připojení k Supabase byly do Workeru přidány jako secrets.
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", }, }); }, };
Další informace o Supabase naleznete v Oficiální dokumentace Supabase ↗.
Při připojování k Supabase přes Hyperdrive se připojujete přímo k podkladové databázi Postgres. To zajišťuje nejnižší latenci databázových dotazů při přístupu ze strany serveru z Workerů. Chcete-li se k Supabase připojit pomocí Hyperdrive, postupujte takto:
1. Povolte přístup Hyperdrive
Hyperdrive můžete připojit k libovolné existující databázi Supabase jako uživatel Postgres, který se nastavuje během vytváření projektu. Pokud chcete pro Hyperdrive vytvořit nového uživatele, spusťte místo toho tyto příkazy v SQL Editor ↗.
Koncový bod databáze najdete v stránka nastavení databáze ↗.
S uživatelem databáze, heslem, endpointem databáze (hostname a port) a názvem databáze (výchozí: postgres) teď můžete nastavit Hyperdrive.
2. Vytvořte konfiguraci databáze
Pro konfiguraci Hyperdrive budete potřebovat:
- IP adresa (nebo hostname) a port vaší databáze.
- Uživatelské jméno databáze (například
hyperdrive-demo) kterou jste nakonfigurovali v předchozím kroku. - Heslo přiřazené k tomuto uživatelskému jménu.
- Název databáze, ke které se má Hyperdrive připojit. Například
postgres.
Hyperdrive přijímá kombinaci těchto parametrů ve standardním formátu connection string používaném databázovými ovladači:
postgres://USERNAME:PASSWORD@HOSTNAME_OR_IP_ADDRESS:PORT/database_nameVětšina poskytovatelů databází nabízí connection string, který můžete přímo zkopírovat a vložit do Hyperdrive.
Chcete-li vytvořit konfiguraci Hyperdrive v Cloudflare dashboardu:
-
V dashboardu Cloudflare přejděte na Hyperdrive stránce.
Přejděte na Hyperdrive ↗ -
Vyberte Create Configuration.
-
Vyplňte formulář, včetně connection stringu.
-
Vyberte Vytvořit.
Chcete-li vytvořit konfiguraci Hyperdrive pomocí Wrangler CLI:
-
Otevřete terminál a spusťte následující příkaz. Nahraďte
<NAME_OF_HYPERDRIVE_CONFIG>názvem konfigurace Hyperdrive a vložte řetězec připojení poskytnutý vaším databázovým hostitelem, nebo nahraďteuser,password,HOSTNAME_OR_IP_ADDRESS,port, adatabase_namezástupné symboly za symboly specifické pro vaši databázi:npx wrangler hyperdrive create <NAME_OF_HYPERDRIVE_CONFIG> --connection-string="postgres://user:password@HOSTNAME_OR_IP_ADDRESS:PORT/database_name" -
Tento příkaz vypíše vazbu pro Konfigurační soubor Wrangler:
{ "$schema": "./node_modules/wrangler/config-schema.json", "name": "hyperdrive-example", "main": "src/index.ts", // Set this to today's date "compatibility_date": "2026-08-28", "compatibility_flags": [ "nodejs_compat" ], // Pasted from the output of `wrangler hyperdrive create <NAME_OF_HYPERDRIVE_CONFIG> --connection-string=[...]` above. "hyperdrive": [ { "binding": "HYPERDRIVE", "id": "<ID OF THE CREATED HYPERDRIVE CONFIGURATION>" } ] }"$schema" = "./node_modules/wrangler/config-schema.json" name = "hyperdrive-example" main = "src/index.ts" # Set this to today's date compatibility_date = "2026-08-28" compatibility_flags = [ "nodejs_compat" ] [[hyperdrive]] binding = "HYPERDRIVE" id = "<ID OF THE CREATED HYPERDRIVE CONFIGURATION>"
3. Používejte Hyperdrive ve svém Workeru
Nainstalujte node-postgres ovladač:
npm i pg@>8.16.3Pokud používáte TypeScript, nainstalujte balíček typů:
npm i -D @types/pgPřidejte potřebné příznaky kompatibility s Node.js a vazbu Hyperdrive do svého wrangler.jsonc soubor:
{
// required for database drivers to function
"compatibility_flags": [
"nodejs_compat"
],
// Set this to today's date
"compatibility_date": "2026-08-28",
"hyperdrive": [
{
"binding": "HYPERDRIVE",
"id": "<your-hyperdrive-id-here>"
}
]
}compatibility_flags = [ "nodejs_compat" ]
# Set this to today's date
compatibility_date = "2026-08-28"
[[hyperdrive]]
binding = "HYPERDRIVE"
id = "<your-hyperdrive-id-here>"Vytvořte nový Client instance a předejte Hyperdrive connectionString:
// filepath: src/index.ts
import { Client } from "pg";
export default {
async fetch(
request: Request,
env: Env,
ctx: ExecutionContext,
): Promise<Response> {
// Create a new client instance for each request. Hyperdrive maintains the
// underlying database connection pool, so creating a new client is fast.
const client = new Client({
connectionString: env.HYPERDRIVE.connectionString,
});
try {
// Connect to the database
await client.connect();
// Perform a simple query
const result = await client.query("SELECT * FROM pg_tables");
return Response.json({
success: true,
result: result.rows,
});
} catch (error: any) {
console.error("Database error:", error.message);
return new Response("Internal error occurred", { status: 500 });
}
},
};Další kroky
- Další informace o Jak funguje Hyperdrive.
- Viz průvodce řešením problémů pro ladění běžných problémů.
- Zjistěte více o dalších možnosti úložiště dostupné pro Cloudflare Workers.