7.10.0), o lançamento estável atual.
Pré-requisitos
- Node.js 20.19, 22.12 ou 24 (ou posterior)
- Um serviço ClickHouse Managed Postgres
psql, para criar o banco de dados. Você também pode executar a instruçãoCREATE DATABASEno SQL Console.- No macOS: Docker, para executar o Prisma Migrate (consulte Executar a migração)
Crie um serviço ClickHouse Managed Postgres
No console do ClickHouse Cloud, clique em New service e selecione Postgres. A instância fica pronta em poucos minutos. Para um passo a passo completo, consulte o guia de início rápido.Obtenha os detalhes de conexão
Clique em Connect na barra lateral esquerda do seu serviço. O modal exibe seu nome de usuário, senha, servidor e porta, além de strings de conexão prontas para uso. Este guia usa duas conexões, pois o Prisma tem dois componentes que se comunicam com o banco de dados:- Sua aplicação (Prisma Client) se conecta via PgBouncer na porta
6432. O PgBouncer faz o pooling de conexões, permitindo que muitos processos da aplicação ou instâncias serverless compartilhem um pequeno número de backends do Postgres. - O Prisma CLI (Prisma Migrate) se conecta diretamente na porta
5432. Durante a execução, o Prisma Migrate adquire um bloqueio consultivo (advisory lock) em nível de sessão. No modo de pooling de transações do PgBouncer, esse bloqueio pode continuar retido em um backend do pool que passa a atender outros clientes, e as migrações seguintes ficam travadas aguardando sua liberação.
<service-name>-ca-certificate.pem. Ele também está disponível em Settings → CA Certificate. O certificado é exclusivo da sua instância e é usado para conectar com sslmode=verify-full, que verifica se você está se comunicando com o seu próprio servidor.
Configure o projeto
Crie um projeto TypeScript e instale a Prisma CLI, o Prisma Client, o adaptador de driver node-postgres e odotenv:
Instale explicitamente
prisma@7 e @prisma/client@7. No momento em que este texto foi escrito, a tag latest do prisma no npm aponta para uma versão release candidate do Prisma 8, que usa uma configuração diferente da descrita neste guia.tsconfig.json:
Inicializar o Prisma
1
Execute prisma init
prisma/schema.prisma e o arquivo de configuração do Prisma prisma7.config.ts, adiciona um DATABASE_URL provisório ao .env e o cliente gerado ao .gitignore (criando esses arquivos, se necessário), além de adicionar as skills do Prisma para agentes de programação com IA. A partir da versão 7.10, o Prisma nomeia o arquivo de configuração como prisma7.config.ts para evitar conflito com o formato do Prisma 8.2
Adicione o certificado da CA
Mova o certificado da CA que você baixou para a raiz do projeto e renomeie-o para Caminhos relativos de certificados são resolvidos a partir do diretório em que você executa os comandos. Por isso, execute todos os comandos deste guia a partir da raiz do projeto.
ca-certificate.pem:Configure a conexão
1
Crie um banco de dados
Crie um banco de dados para a aplicação. Substitua
<PASSWORD> e o host pelos valores exibidos no modal Connect:2
Defina as URLs de conexão
No arquivo As duas URLs usam parâmetros de TLS diferentes porque são lidas por drivers diferentes:
.env, substitua o DATABASE_URL provisório adicionado pelo prisma init por estas duas URLs de conexão, ambas apontando para o banco de dados guide_prisma. Use a senha exibida no modal Connect:DATABASE_URLé lida pelo node-postgres por meio do@prisma/adapter-pg. Ela aceita os parâmetros padrãosslmode=verify-full&sslrootcert=..., os mesmos exibidos no modal Connect.DIRECT_URLé lida pelo motor de schema da Prisma CLI, que tem parâmetros próprios:sslcerté o caminho para o certificado da CA, esslaccept=strictativa a verificação do certificado e do hostname.
3
Aponte a Prisma CLI para a conexão direta
Substitua o conteúdo de No Prisma 7, a URL definida no arquivo de configuração é usada apenas pela CLI. O Prisma Client obtém a conexão pelo adaptador de driver, que você configura em Consulte o banco de dados.
prisma7.config.ts:Defina o schema e execute a migração
1
Adicione um model
Adicione um model
Todo ao final de prisma/schema.prisma:2
Execute a migração
No Linux, execute o Prisma Migrate diretamente:No macOS, execute o mesmo comando em um contêiner Linux:O Prisma cria a migração SQL em
prisma/migrations/ e a aplica:3
Gere o Prisma Client
generated/prisma. Como esse comando não se conecta ao banco de dados, você pode executá-lo em qualquer plataforma.Consultar o banco de dados
1
Criar o Prisma Client
Crie
lib/prisma.ts. O adaptador PrismaPg se conecta usando a DATABASE_URL, por meio do PgBouncer:2
Executar consultas CRUD
Crie Execute o script:
script.ts:3
Servir os dados via HTTP
Crie Inicie o servidor:Em outro terminal, adicione dois todos:Abra http://localhost:3000/todos no navegador para visualizá-los. A resposta será semelhante a esta:
server.ts, um servidor HTTP mínimo que cria todos com POST /todos e os lista em qualquer requisição GET:Verifique no SQL Console
No console do ClickHouse Cloud, abra o SQL Console do seu serviço, expanda o seu banco de dados e o schemapublic e selecione a tabela Todo. Você também verá a tabela _prisma_migrations, onde o Prisma Migrate registra as migrações aplicadas.
A tabela Todo contém as duas linhas que você adicionou pelo endpoint HTTP:
Solução de problemas
Próximos passos
- Conexão: strings de conexão, PgBouncer e TLS
- Configurações: ajuste os parâmetros do Postgres e do PgBouncer
- Réplicas de leitura: escale cargas de trabalho com uso intensivo de leitura
- Desenvolvimento local: desenvolva com um Postgres local no Docker
- Prisma Migrate em produção: use
prisma migrate deployno seu pipeline de CI