Jump to content

Attention: This page is 30 days older than the English version and might be outdated. If you're a native speaker of this language and would like to contribute to the project, please consider updating this page to match the latest English version.

You can also view the English version of this page.

Prisma

Prisma é um ORM para TypeScript, que permite que você defina seu schema e modelos de banco de dados em um arquivo schema.prisma e, em seguida, gere um cliente type-safe que pode ser usado para interagir com seu banco de dados a partir de seu back-end.

Prisma Client

Localizado em /server/db/client.ts, o Prisma Client é instanciado como uma variável global (conforme recomendado como melhor prática↗ pela equipe da Prisma) e exportado para ser usado em suas rotas de API. Incluímos o Prisma Client em Context por padrão e recomendamos usá-lo em vez de importá-lo separadamente em cada arquivo.

Schema

Você encontrará o arquivo de esquema do Prisma em /prisma/schema.prisma. Este arquivo é onde você define seu esquema e modelos de banco de dados e é usado ao gerar o Prisma Client.

Com NextAuth.js

Quando você seleciona NextAuth.js em combinação com Prisma, o arquivo de esquema é gerado e configurado para você com os valores recomendados para os modelos User, Session, Account e VerificationToken, de acordo com os modelos na documentação do NextAuth.js↗.

Banco de dados padr√£o

O banco de dados padrão é um banco de dados SQLite, que é ótimo para desenvolvimento e criação rápida de uma prova de conceito, mas não é recomendado para produção. Você pode alterar o banco de dados a ser usado alterando o provider no bloco datasource para postgresql ou mysql e, em seguida, atualizando a string de conexão nas variáveis de ambiente para apontar para seu banco de dados.

Propagar seu banco de dados

Propagar seu banco de dados↗ é uma ótima maneira de preencher rapidamente seu banco de dados com dados de teste para ajudá-lo a começar. Para configurar a propagação, você precisará criar um arquivo seed.ts no diretório /prisma e, em seguida, adicionar um script seed ao seu arquivo package.json. Você também precisará de algum executor de TypeScript que possa executar o script de semente. Recomendamos tsx↗, que é um executor TypeScript de alto desempenho que usa esbuild e não requer nenhuma configuração ESM, mas ts-node ou outros executores trabalho também.

package.json
{
  "scripts": {
    "db-seed": "NODE_ENV=development prisma db seed"
  },
  "prisma": {
    "seed": "tsx prisma/seed.ts"
  }
}
prisma/seed.ts
import { prisma } from "../src/server/db/client";

async function main() {
  const id = "cl9ebqhxk00003b600tymydho";
  await prisma.example.upsert({
    where: {
      id,
    },
    create: {
      id,
    },
    update: {},
  });
}

main()
  .then(async () => {
    await prisma.$disconnect();
  })
  .catch(async (e) => {
    console.error(e);
    await prisma.$disconnect();
    process.exit(1);
  });

Em seguida, basta executar pnpm db-seed (ou npm/yarn) para propagar seu banco de dados.

Recursos √öteis

RecursoLink
Documentação do Prismahttps://www.prisma.io/docs/↗
GitHub do Prismahttps://github.com/prisma/prisma‚Üó
Adaptador de Prisma para NextAuth.jshttps://next-auth.js.org/adapters/prisma‚Üó
Guia de Conex√£o com Planetscalehttps://www.prisma.io/docs/getting-started/setup-prisma/add-to-existing-project/relational-databases/connect-your-database-typescript-planetscale‚Üó

Recent Contributors To This Page