Inicio rápido • Sitio web • Documentos • Ejemplos • Blog • Discord • Twitter
Prisma ORM es un ORM de próxima generación que consta de estas herramientas:
Prisma Client : generador de consultas generado automáticamente y con seguridad de tipos para Node.js y TypeScript
Prisma Migrate : sistema de migración y modelado de datos declarativos
Prisma Studio : GUI para ver y editar datos en su base de datos
Prisma Client se puede utilizar en cualquier aplicación backend Node.js o TypeScript (incluidas aplicaciones sin servidor y microservicios). Puede ser una API REST, una API GraphQL, una API gRPC o cualquier otra cosa que necesite una base de datos.
Si necesita una base de datos para usar con Prisma ORM, consulte Prisma Postgres.
Prisma ORM se puede ampliar aún más con estos productos Prisma:
Prisma Accelerate: caché de base de datos global con agrupación de conexiones escalable
Prisma Pulse: eventos de bases de datos en tiempo real con suscripciones de tipo seguro
Prisma Optimize: optimización de consultas impulsada por IA e información sobre el rendimiento
Prisma Studio: Un editor visual para los datos de tu base de datos
La forma más rápida de empezar a utilizar Prisma es siguiendo las guías de inicio rápido. Puede elegir cualquiera de dos bases de datos:
Prisma Postgres
SQLite
Si ya tienes tu propia base de datos, puedes seguir estas guías:
Agregar Prisma a un proyecto existente
Configura un nuevo proyecto con Prisma desde cero
Esta sección proporciona una descripción general de alto nivel de cómo funciona Prisma ORM y sus componentes técnicos más importantes. Para obtener una introducción más completa, visite la documentación de Prisma.
Cada proyecto que utiliza una herramienta del kit de herramientas de Prisma comienza con un archivo de esquema de Prisma. El esquema Prisma permite a los desarrolladores definir sus modelos de aplicaciones en un lenguaje de modelado de datos intuitivo. También contiene la conexión a una base de datos y define un generador :
// Fuente de datos fuente de datos db { proveedor = "postgresql" url = env("DATABASE_URL")}// Cliente Generatorgenerator { proveedor = "prisma-client-js"}// Modelo de datos modelo Post { id Int @id @default(autoincrement( )) título Cadena contenido Cadena? publicado Booleano @default(false) autor ¿Usuario? @relation(campos: [authorId], referencias: [id]) AuthorId Int?}model Usuario { id Int @id @default(autoincrement()) email String @unique name String? publicaciones Publicar[]}
En este esquema, configura tres cosas:
Fuente de datos : especifica la conexión de su base de datos (a través de una variable de entorno)
Generador : Indica que desea generar Prisma Client
Modelo de datos : define los modelos de su aplicación.
En esta página, la atención se centra en el modelo de datos. Puede obtener más información sobre fuentes de datos y generadores en las páginas de documentos respectivas.
El modelo de datos es una colección de modelos. Un modelo tiene dos funciones principales:
Representar una tabla en la base de datos subyacente.
Proporcionar la base para las consultas en Prisma Client API
Hay dos flujos de trabajo principales para "incorporar" un modelo de datos a su esquema Prisma:
Generar el modelo de datos a partir de la introspección de una base de datos.
Escribir manualmente el modelo de datos y asignarlo a la base de datos con Prisma Migrate
Una vez definido el modelo de datos, puede generar Prisma Client que expondrá CRUD y más consultas para los modelos definidos. Si está utilizando TypeScript, obtendrá seguridad de escritura completa para todas las consultas (incluso cuando solo recupere los subconjuntos de los campos de un modelo).
El primer paso al utilizar Prisma Client es instalar su paquete npm:
npm install @prisma/client
Tenga en cuenta que la instalación de este paquete invoca el comando prisma generate
que lee su esquema Prisma y genera el código del Cliente Prisma. El código se ubicará en node_modules/.prisma/client
, que es exportado por node_modules/@prisma/client/index.d.ts
.
Después de cambiar su modelo de datos, deberá volver a generar manualmente Prisma Client para garantizar que el código dentro de node_modules/.prisma/client
se actualice:
npx prisma generate
Consulte la documentación para obtener más información sobre "generar el cliente Prisma".
Una vez generado el Cliente Prisma, puede importarlo en su código y enviar consultas a su base de datos. Así es como se ve el código de configuración.
Puede importar y crear una instancia de Prisma Client de la siguiente manera:
importar { PrismaClient } desde '@prisma/client'const prisma = new PrismaClient()
o
const { PrismaClient } = require('@prisma/client')const prisma = nuevo PrismaClient()
Ahora puede comenzar a enviar consultas a través de la API Prisma Client generada; aquí hay algunas consultas de ejemplo. Tenga en cuenta que todas las consultas de Prisma Client devuelven objetos JavaScript antiguos y simples .
Obtenga más información sobre las operaciones disponibles en los documentos de Prisma Client o mire este vídeo de demostración (2 min).
User
de la base de datos// Ejecutar dentro de la función `async`const allUsers = await prisma.user.findMany()
posts
en cada objeto User
devuelto// Ejecutar dentro de la función `async`const allUsers = await prisma.user.findMany({ include: { posts: true },})
Post
que contengan "prisma"
// Ejecutar dentro de la función `async`const filteredPosts = await prisma.post.findMany({ donde: { O: [{ título: { contiene: 'prisma' } }, { contenido: { contiene: 'prisma' } }], } ,})
User
y un nuevo registro Post
en la misma consulta// Ejecutar dentro de la función `async`const usuario = await prisma.user.create({ datos: { nombre: 'Alice', correo electrónico: '[email protected]', publicaciones: { crear: { título: 'Únase a nosotros para Prisma Día 2021' }, }, },})
Post
existente// Ejecutar dentro de la función `async`const post = await prisma.post.update({ donde: { id: 42 }, datos: { publicado: verdadero },})
Tenga en cuenta que cuando utilice TypeScript, el resultado de esta consulta se escribirá estáticamente para que no pueda acceder accidentalmente a una propiedad que no existe (y cualquier error tipográfico se detecta en tiempo de compilación). Obtenga más información sobre cómo aprovechar los tipos generados de Prisma Client en la página Uso avanzado de tipos generados en los documentos.
Prisma cuenta con una comunidad grande y solidaria de desarrolladores de aplicaciones entusiastas. Puedes unirte a nosotros en Discord y aquí en GitHub.
¿Construiste algo increíble con Prisma? ? Muéstralo con estas insignias, perfectas para tu archivo Léame o sitio web.
[![Made with Prisma](http://made-with.prisma.io/dark.svg)](https://prisma.io)
[![Made with Prisma](http://made-with.prisma.io/indigo.svg)](https://prisma.io)
Si tiene un problema de seguridad que informar, contáctenos en [email protected].
Puede hacer preguntas e iniciar debates sobre temas relacionados con Prisma en el repositorio de prisma
en GitHub.
? hacer una pregunta
Si ve un mensaje de error o tiene un problema, asegúrese de crear un informe de error. Puede encontrar mejores prácticas para crear informes de errores (como incluir resultados de depuración adicionales) en los documentos.
? Crear informe de error
Si Prisma actualmente no tiene una característica determinada, asegúrese de consultar la hoja de ruta para ver si ya está planificada para el futuro.
Si la función en la hoja de ruta está vinculada a un problema de GitHub, asegúrese de dejar un ? reacción sobre el problema e idealmente un comentario con su opinión sobre la función.
? Enviar solicitud de función
Consulte nuestras pautas de contribución y el Código de conducta para contribuyentes.
Estado de las pruebas de Prisma:
Estado de las pruebas del ecosistema: