Pular para o conteúdo principal

Introdução

  • Este tutorial irá guiá-lo pelos passos para conectar seu DrizzleORM ao seu banco de dados PostgreSQL hospedado na Square Cloud.
  • Primeiro, você precisa ter um plano pago ativo na sua conta. Você pode ver nossos planos e adquirir um conforme sua necessidade aqui.
  • Em seguida, você precisará de um banco de dados PostgreSQL hospedado na Square Cloud. Se ainda não criou um, você pode criá-lo aqui.

Prerequisitos

  • Antes de começar, certifique-se de ter criado um banco de dados na Square Cloud e conectado a ele com algum cliente de gerenciamento como DBeaver ou outro para criar bancos e tabelas.
  • Também será necessário ter o Drizzle configurado no seu projeto. Se ainda não fez isso, você pode seguir a documentação oficial do DrizzleORM aqui.

Conectando drizzle com postgres

Para conectar o Drizzle ao PostgreSQL, você precisará obter as informações de conexão: a URL e os certificados.

URL do banco de dados

A URL do banco de dados que você obtém nas configurações de conexão fornece usuário, senha, host e porta para a conexão.
postgresql://username:password@host:port/dbname
Se você não criou um banco específico, pode usar squarecloud como dbname.
postgresql://username:password@host:port/squarecloud

Certificados

Nas configurações de conexão do banco, baixe o arquivo certificate.pem. Usaremos esse arquivo como ca, cert e key para conectar ao banco.

Conectando

Para realizar a conexão, você precisa configurar o arquivo drizzle.config.ts. Neste momento você pode usar a string de conexão ou fornecer as credenciais separadamente. Configure os parâmetros de conexão como nos exemplos abaixo:
drizzle.config.ts
import { defineConfig } from 'drizzle-kit'
import fs from "fs";
import path from "path";

const fullPath = path.join(process.cwd(), "certs/certificate.pem")
const cert = fs.readFileSync(fullPath, "utf-8")

export default defineConfig({
  dialect: "postgresql",
  dbCredentials: {
    host: "square-cloud-db-{id}.squareweb.app",
    port: 7171,
    user: "squarecloud",
    password: "password",
    database: "squarecloud",
    ssl: {
        ca: cert,
        key: cert,
        cert: cert
    }
  },

  schema: "path/to/schema.ts",
  out: "./drizzle",
  migrations: {
    table: '__drizzle_migrations',
    schema: 'drizzle'
  }
});