← Cloudflare Workers / workers / tutorials
Nastavit a používat databázi Prisma Postgres
Prisma Postgres ↗ je spravovaná bezserverová databáze PostgreSQL. Podporuje funkce jako pooling připojení, ukládání do mezipaměti, odběry v reálném čase a doporučení pro optimalizaci dotazů.
V tomto tutoriálu se naučíte, jak:
- Nastavte projekt Cloudflare Workers pomocí Prisma ORM ↗.
- Vytvořte instanci Prisma Postgres pomocí Prisma CLI.
- Modelujte data a spouštějte migrace pomocí Prisma Postgres.
- Dotazování databáze z Workers.
- Nasaďte Worker na Cloudflare.
Předpoklady
Než začnete postupovat podle tohoto průvodce, ověřte, že máte následující:
- Node.js
v18.18nebo vyšší nainstalovaný. - Aktivní účet Cloudflare ↗.
- Základní znalost instalace a používání aplikací s rozhraním příkazové řádky (CLI).
1. Vytvořte nový projekt Worker
Začněte použitím C3 pro vytvoření projektu Worker v příkazovém řádku:
npm create cloudflare@latest prisma-postgres-worker -- --type=hello-world --ts=true --git=true --deploy=falsePoté přejděte do svého projektu:
cd ./prisma-postgres-workerVáš počáteční src/index.ts soubor v tuto chvíli obsahuje jednoduchý handler požadavků:
export default {
async fetch(request, env, ctx): Promise<Response> {
return new Response("Hello World!");
},
} satisfies ExportedHandler<Env>;2. Nastavte Prisma ve svém projektu
V tomto kroku nastavíte Prisma ORM s databází Prisma Postgres pomocí CLI. Poté vytvoříte a spustíte pomocné skripty pro vytvoření tabulek v databázi a vygenerujete Prisma klienta pro dotazování na ni.
2.1. Nainstalujte požadované závislosti
Nainstalujte Prisma CLI jako vývojovou závislost:
npm i -D prismaNainstalujte Klientské rozšíření Prisma Accelerate ↗ protože je vyžadován pro Prisma Postgres:
npm i @prisma/extension-accelerateNainstalujte dotenv-cli balíček ↗ k načtení proměnných prostředí z .dev.vars:
npm i -D dotenv-cli2.2. Vytvořte databázi Prisma Postgres a inicializujte Prisma
Inicializujte Prisma ve své aplikaci:
npx prisma@latest init --dbPokud nemáte Prisma Data Platform ↗ účet, nebo pokud nejste přihlášeni, příkaz vás vyzve k přihlášení pomocí jednoho z dostupných poskytovatelů ověření. Otevře se okno prohlížeče, kde se můžete přihlásit nebo vytvořit účet. Po dokončení tohoto kroku se vraťte do příkazového řádku.
Jakmile se přihlásíte (nebo pokud jste již přihlášeni), CLI vás vyzve k výběru názvu projektu a regionu databáze.
Jakmile příkaz skončí, vytvoří:
- Projekt ve vašem Platform Console ↗ obsahující instanci databáze Prisma Postgres.
- A
prismasložku obsahujícíschema.prisma, kde definujete schéma své databáze. -
.envsoubor v kořenovém adresáři projektu, který bude obsahovat URL databáze Prisma PostgresDATABASE_URL=<your-prisma-postgres-database-url>.
Mějte na paměti, že Cloudflare Workers nepodporuje .env soubory. Použijete soubor s názvem .dev.vars místo .env soubor, který byl právě vytvořen.
2.3. Připravte proměnné prostředí
Přejmenujte .env soubor v kořenovém adresáři aplikace na .dev.vars soubor:
mv .env .dev.vars2.4. Aplikujte změny schématu databáze
Otevřete schema.prisma soubor v prisma složku a přidejte do ní následující User model do vaší databáze:
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model User {
id Int @id @default(autoincrement())
email String
name String
}Dále přidejte následující pomocné skripty do scripts sekci vašeho package.json:
"scripts": {
"migrate": "dotenv -e .dev.vars -- npx prisma migrate dev",
"generate": "dotenv -e .dev.vars -- npx prisma generate --no-engine",
"studio": "dotenv -e .dev.vars -- npx prisma studio",
// Additional worker scripts...
}Spuštěním migračního skriptu použijete změny v databázi:
npm run migrateAž budete vyzváni, zadejte název migrace (například init).
Po dokončení těchto kroků je Prisma ORM plně nastavena a propojena s databází Prisma Postgres.
3. Vyvíjejte aplikaci
Upravte src/index.ts soubor a nahraďte jeho obsah následujícím kódem:
import { PrismaClient } from "@prisma/client/edge";
import { withAccelerate } from "@prisma/extension-accelerate";
export interface Env {
DATABASE_URL: string;
}
export default {
async fetch(request, env, ctx): Promise<Response> {
const path = new URL(request.url).pathname;
if (path === "/favicon.ico")
return new Response("Resource not found", {
status: 404,
headers: {
"Content-Type": "text/plain",
},
});
const prisma = new PrismaClient({
datasourceUrl: env.DATABASE_URL,
}).$extends(withAccelerate());
const user = await prisma.user.create({
data: {
email: `Jon${Math.ceil(Math.random() * 1000)}@gmail.com`,
name: "Jon Doe",
},
});
const userCount = await prisma.user.count();
return new Response(`\
Created new user: ${user.name} (${user.email}).
Number of users in the database: ${userCount}.
`);
},
} satisfies ExportedHandler<Env>;Spusťte vývojový server:
npm run devNavštivte https://localhost:8787 ↗ a ověřte, že vaše aplikace zobrazí následující výstup:
Number of users in the database: 1Pokaždé, když obnovíte stránku, se vytvoří nový uživatel. Zobrazené číslo se zvýší o 1 při každém obnovení stránky, protože vrací celkový počet uživatelů ve vaší databázi.
4. Nasaďte aplikaci na Cloudflare
Po nasazení aplikace na Cloudflare potřebuje přístup k DATABASE_URL proměnnou prostředí, která je lokálně definována v .dev.vars. Můžete použít npx wrangler secret put příkaz pro nahrání DATABASE_URL pro nasazovací prostředí:
npx wrangler secret put DATABASE_URLAž budete vyzváni, vložte DATABASE_URL hodnota (z .dev.vars). Pokud jste přihlášeni přes Wrangler CLI, zobrazí se výzva, zda chcete vytvořit nový Worker. Potvrďte volbou "yes":
✔ There doesn't seem to be a Worker called "prisma-postgres-worker". Do you want to create a new Worker with that name and add secrets to it? … yesPoté spusťte následující příkaz pro nasazení projektu do Cloudflare Workers:
npm run deploy wrangler CLI zabalí a nahraje vaši aplikaci.
Pokud ještě nejste přihlášeni, wrangler CLI otevře okno prohlížeče a vyzve vás k přihlášení do Cloudflare dashboardu.
Jakmile nasazení dokončíte, ověřte ho návštěvou živé URL adresy uvedené ve výstupu nasazení, například https://{PROJECT_NAME}.workers.dev. Pokud narazíte na potíže, ověřte, že byly secrets přidány správně, a zkontrolujte logy nasazení, zda neobsahují chyby.
Další kroky
Gratulujeme k sestavení a nasazení jednoduché aplikace s Prisma Postgres a Cloudflare Workers!
Chcete-li aplikaci dále vylepšit:
- Přidejte ukládání do mezipaměti ↗ do vašich dotazů.
- Prozkoumejte Dokumentace Prisma Postgres ↗.
Chcete-li se dozvědět, jak vytvořit aplikaci v reálném čase pomocí Cloudflare Workers a Prisma Postgres, přečtěte si toto ↗ návod.