Início rápido • Site • Documentos • Exemplos • Blog • Discord • Twitter
Prisma ORM é um ORM de próxima geração que consiste nestas ferramentas:
Cliente Prisma : construtor de consultas gerado automaticamente e com tipo seguro para Node.js e TypeScript
Prisma Migrate : sistema declarativo de modelagem e migração de dados
Prisma Studio : GUI para visualizar e editar dados em seu banco de dados
O Prisma Client pode ser usado em qualquer aplicativo backend Node.js ou TypeScript (incluindo aplicativos sem servidor e microsserviços). Pode ser uma API REST, uma API GraphQL, uma API gRPC ou qualquer outra coisa que precise de um banco de dados.
Se você precisar de um banco de dados para usar com o Prisma ORM, dê uma olhada no Prisma Postgres.
O Prisma ORM pode ser estendido ainda mais com estes produtos Prisma:
Prisma Accelerate: Cache de banco de dados global com pool de conexões escalonável
Prisma Pulse: eventos de banco de dados em tempo real com assinaturas seguras
Prisma Optimize: otimização de consultas e insights de desempenho com tecnologia de IA
Prisma Studio: um editor visual para os dados do seu banco de dados
A maneira mais rápida de começar a usar o Prisma é seguindo os guias de início rápido. Você pode escolher um dos dois bancos de dados:
Prisma Postgres
SQLite
Se você já possui seu próprio banco de dados, pode seguir estes guias:
Adicionar Prisma a um projeto existente
Configure um novo projeto com Prisma do zero
Esta seção fornece uma visão geral de alto nível de como o Prisma ORM funciona e seus componentes técnicos mais importantes. Para uma introdução mais completa, visite a documentação do Prisma.
Todo projeto que usa uma ferramenta do kit de ferramentas Prisma começa com um arquivo de esquema Prisma. O esquema Prisma permite que os desenvolvedores definam seus modelos de aplicativos em uma linguagem intuitiva de modelagem de dados. Ele também contém a conexão com um banco de dados e define um gerador :
// Fonte de dadosdatasource db { provedor = "postgresql" url = env("DATABASE_URL")}// Cliente geradorgerador { provedor = "prisma-client-js"}// Modelo de dadosmodel Post { id Int @id @default(autoincrement( )) título String conteúdo String? publicado Booleano @default(false) autor Usuário? @relation(campos: [authorId], referências: [id]) authorId Int?}model Usuário { id Int @id @default(autoincrement()) email String @nome exclusivo String? postagens Postagem[]}
Neste esquema, você configura três coisas:
Fonte de dados : especifica sua conexão com o banco de dados (por meio de uma variável de ambiente)
Gerador : Indica que você deseja gerar o Cliente Prisma
Modelo de dados : define seus modelos de aplicativo
Nesta página, o foco está no modelo de dados. Você pode aprender mais sobre fontes de dados e geradores nas respectivas páginas de documentação.
O modelo de dados é uma coleção de modelos. Um modelo tem duas funções principais:
Representar uma tabela no banco de dados subjacente
Fornece a base para as consultas na API Prisma Client
Existem dois fluxos de trabalho principais para "inserir" um modelo de dados em seu esquema Prisma:
Gere o modelo de dados a partir da introspecção de um banco de dados
Escrevendo manualmente o modelo de dados e mapeando-o para o banco de dados com Prisma Migrate
Uma vez definido o modelo de dados, você pode gerar o Prisma Client que irá expor o CRUD e mais consultas para os modelos definidos. Se estiver usando TypeScript, você obterá segurança total de tipo para todas as consultas (mesmo ao recuperar apenas os subconjuntos dos campos de um modelo).
O primeiro passo ao usar o Prisma Client é instalar seu pacote npm:
npm install @prisma/client
Observe que a instalação deste pacote invoca o comando prisma generate
que lê seu esquema Prisma e gera o código do cliente Prisma. O código estará localizado em node_modules/.prisma/client
, que é exportado por node_modules/@prisma/client/index.d.ts
.
Depois de alterar seu modelo de dados, você precisará gerar novamente o Prisma Client manualmente para garantir que o código dentro de node_modules/.prisma/client
seja atualizado:
npx prisma generate
Consulte a documentação para obter mais informações sobre "gerar o cliente Prisma".
Uma vez gerado o Cliente Prisma, você pode importá-lo em seu código e enviar consultas para seu banco de dados. Esta é a aparência do código de configuração.
Você pode importar e instanciar o Prisma Client da seguinte maneira:
importar {PrismaClient} de '@prisma/client'const prisma = new PrismaClient()
ou
const { PrismaClient } = require('@prisma/client')const prisma = new PrismaClient()
Agora você pode começar a enviar consultas por meio da API Prisma Client gerada. Aqui estão alguns exemplos de consultas. Observe que todas as consultas do Prisma Client retornam objetos JavaScript simples e antigos .
Saiba mais sobre as operações disponíveis na documentação do Prisma Client ou assista a este vídeo de demonstração (2 min).
User
do banco de dados// Executa dentro da função `async`const allUsers = await prisma.user.findMany()
posts
em cada objeto User
retornado// Executa dentro da função `async`const allUsers = await prisma.user.findMany({ include: { posts: true },})
Post
que contenham "prisma"
// Executa dentro de `async` functionconst filteredPosts = await prisma.post.findMany({ where: { OR: [{ title: { contains: 'prisma' } }, { content: { contains: 'prisma' } }], } ,})
User
e um novo registro Post
na mesma consulta// Execute dentro de `async` functionconst user = await prisma.user.create({ data: { name: 'Alice', email: '[email protected]', posts: { create: { title: 'Junte-se a nós no Prisma Dia 2021' }, }, },})
Post
existente// Executa dentro de `async` functionconst post = await prisma.post.update({ where: { id: 42 }, data: {publicado: true },})
Observe que ao usar TypeScript, o resultado desta consulta será digitado estaticamente para que você não possa acessar acidentalmente uma propriedade que não existe (e quaisquer erros de digitação serão detectados em tempo de compilação). Saiba mais sobre como aproveitar os tipos gerados do Prisma Client na página Uso avançado de tipos gerados na documentação.
Prisma tem uma comunidade grande e solidária de desenvolvedores de aplicativos entusiasmados. Você pode se juntar a nós no Discord e aqui no GitHub.
Construiu algo incrível com o Prisma? ? Mostre-o com estes emblemas, perfeitos para seu leia-me ou site.
[![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)
Se você tiver um problema de segurança para relatar, entre em contato conosco pelo e-mail [email protected].
Você pode fazer perguntas e iniciar discussões sobre tópicos relacionados ao Prisma no repositório prisma
no GitHub.
? Faça uma pergunta
Se você vir uma mensagem de erro ou se deparar com um problema, crie um relatório de bug! Você pode encontrar práticas recomendadas para criar relatórios de bugs (como incluir saída de depuração adicional) na documentação.
? Criar relatório de bug
Se o Prisma atualmente não possui um determinado recurso, verifique o roteiro para ver se isso já está planejado para o futuro.
Se o recurso no roteiro estiver vinculado a um problema do GitHub, deixe um ? reação sobre o assunto e, de preferência, um comentário com sua opinião sobre o recurso!
? Enviar solicitação de recurso
Consulte nossas diretrizes de contribuição e Código de Conduta para colaboradores.
Status dos testes Prisma:
Status dos testes do ecossistema: