7.10.0), la versión estable actual.
Requisitos previos
- Node.js 20.19, 22.12 o 24 y posteriores
- Un servicio de ClickHouse Managed Postgres
psql, para crear la base de datos. También puede ejecutar la sentenciaCREATE DATABASEen la consola SQL.- En macOS: Docker, para ejecutar Prisma Migrate (consulte Ejecutar la migración)
Crear un servicio de ClickHouse Managed Postgres
En la consola de ClickHouse Cloud, haga clic en New service y seleccione Postgres. La instancia estará lista en unos minutos. Consulte la guía de inicio rápido para ver el proceso paso a paso.Obtenga los detalles de conexión
Haga clic en Conectar en la barra lateral izquierda de su servicio. El cuadro de diálogo muestra su nombre de usuario, contraseña, servidor y puerto, además de cadenas de conexión listas para usar. Esta guía utiliza dos conexiones, ya que Prisma tiene dos componentes que se comunican con la base de datos:- Su aplicación (Prisma Client) se conecta a través de PgBouncer en el puerto
6432. PgBouncer agrupa las conexiones, de modo que muchos procesos de la aplicación o instancias sin servidor pueden compartir un número reducido de backends de Postgres. - La CLI de Prisma (Prisma Migrate) se conecta directamente en el puerto
5432. Mientras se ejecuta, Prisma Migrate adquiere un bloqueo consultivo a nivel de sesión. En el modo de agrupación por transacción de PgBouncer, ese bloqueo puede quedar retenido en un backend del grupo que después atiende a otros Clients, lo que deja bloqueadas las migraciones posteriores.
<service-name>-ca-certificate.pem. También lo encontrará en Settings → CA Certificate. El certificado es exclusivo de su instancia y sirve para conectarse con sslmode=verify-full, que comprueba que realmente se está comunicando con su propio servidor.
Configurar el proyecto
Cree un proyecto de TypeScript e instale la CLI de Prisma, Prisma Client, el adaptador de controlador node-postgres ydotenv:
Instale
prisma@7 y @prisma/client@7 de forma explícita. En el momento de redactar esta guía, la etiqueta latest de prisma en npm apunta a una versión candidata de Prisma 8, cuya configuración difiere de la que se describe aquí.tsconfig.json:
Inicializar Prisma
1
Ejecutar prisma init
prisma/schema.prisma y el archivo de configuración de Prisma prisma7.config.ts, añade un marcador de posición para DATABASE_URL en .env y el Client generado en .gitignore (y crea cualquiera de estos archivos si no existe), además de añadir skills de Prisma para agentes de programación con IA. A partir de Prisma 7.10, el archivo de configuración se llama prisma7.config.ts para evitar conflictos con el formato de Prisma 8.2
Añadir el certificado de la CA
Mueva el certificado de la CA que descargó a la raíz del proyecto y cámbiele el nombre a Las rutas relativas de los certificados se resuelven a partir del directorio desde el que se ejecutan los comandos, así que ejecute todos los comandos de esta guía desde la raíz del proyecto.
ca-certificate.pem:Configurar la conexión
1
Crear una base de datos
Cree una base de datos para la aplicación. Sustituya
<PASSWORD> y el host por los valores del cuadro de diálogo Conectar:2
Configurar las URL de conexión
En Las dos URL usan parámetros de TLS distintos porque las leen controladores diferentes:
.env, sustituya el marcador de posición DATABASE_URL que añadió prisma init por estas dos URL de conexión, ambas apuntando a la base de datos guide_prisma. Use la contraseña del cuadro de diálogo Conectar:DATABASE_URLla lee node-postgres a través de@prisma/adapter-pg. Admite los parámetros estándarsslmode=verify-full&sslrootcert=..., los mismos que aparecen en el cuadro de diálogo Conectar.DIRECT_URLla lee el motor de esquemas de la CLI de Prisma, que tiene sus propios parámetros:sslcertes la ruta al certificado de la CA ysslaccept=strictactiva la verificación del certificado y del nombre del host.
3
Apuntar la CLI de Prisma a la conexión directa
Sustituya el contenido de En Prisma 7, la URL del archivo de configuración solo la usa la CLI. Prisma Client obtiene su conexión del adaptador del controlador, que se configura en Consultar la base de datos.
prisma7.config.ts:Definir el esquema y ejecutar la migración
1
Agregar un modelo
Agregue un modelo
Todo al final de prisma/schema.prisma:2
Ejecutar la migración
En Linux, ejecute Prisma Migrate directamente:En macOS, ejecute el mismo comando en un contenedor de Linux:Prisma crea la migración SQL en
prisma/migrations/ y la aplica:3
Generar Prisma Client
generated/prisma. Este comando no se conecta a la base de datos, por lo que puede ejecutarlo en cualquier plataforma.Consultar la base de datos
1
Crear el Prisma Client
Cree
lib/prisma.ts. El adaptador PrismaPg se conecta mediante DATABASE_URL, a través de PgBouncer:2
Ejecutar consultas CRUD
Cree Ejecútelo:
script.ts:3
Servir los datos mediante HTTP
Cree Inicie el servidor:En otra terminal, añada dos tareas:Abra http://localhost:3000/todos en el navegador para verlas. La respuesta será similar a esta:
server.ts, un servidor HTTP mínimo que crea tareas con POST /todos y las devuelve en cualquier solicitud GET:Verificar en la consola SQL
En la consola de ClickHouse Cloud, abra consola SQL en su servicio, expanda su base de datos y el esquemapublic, y seleccione la tabla Todo. También verá la tabla _prisma_migrations, donde Prisma Migrate registra las migraciones aplicadas.
La tabla Todo contiene las dos filas que agregó mediante el endpoint HTTP:
Solución de problemas
Próximos pasos
- Conexión: cadenas de conexión, PgBouncer y TLS
- Configuración: ajuste los parámetros de Postgres y PgBouncer
- Réplicas de lectura: escale workloads con un uso intensivo de lectura
- Desarrollo local: desarrolle con una instancia local de Postgres en Docker
- Prisma Migrate en producción: use
prisma migrate deployen su canalización de CI