title | description | sidebar | type | service | stub | i18nReady | ||
---|---|---|---|---|---|---|---|---|
Neon Postgres & Astro |
Adicione um banco de dados Postgres serverless em seu projeto Astro com Neon |
|
backend |
Neon |
false |
true |
import ReadMore from '~/components/ReadMore.astro';
Neon é um banco de dados Postgres serverless totalmente gerenciado. Ele separa armazenamento e computação para oferecer escalabilidade automática, ramificações e armazenamento bottomless.
- Uma conta Neon com um projeto criado
- String de conexão ao banco de dados Neon
- Um projeto Astro com processamento sob demanda (SSR) habilitado
Para usar Neon com Astro, você precisará configurar uma variável de ambiente Neon. Crie ou edite seu arquivo .env
na raiz do seu projeto, e adicione o seguinte código, substituindo com seus próprios detalhes de projeto:
NEON_DATABASE_URL="postgresql://<user>:<password>@<endpoint_hostname>.neon.tech:<port>/<dbname>?sslmode=require"
Para melhor suporte TypeScript, defina variáveis de ambiente em um arquivo src/env.d.ts
:
interface ImportMetaEnv {
readonly NEON_DATABASE_URL: string;
}
interface ImportMeta {
readonly env: ImportMetaEnv;
}
Saiba mais sobre variáveis de ambiente e arquivos .env
no Astro.
Instale o pacote @neondatabase/serverless
para se conectar ao Neon:
npm install @neondatabase/serverless
Crie um novo arquivo src/lib/neon.ts
com o código seguinte para inicializar seu cliente Neon:
import { neon } from '@neondatabase/serverless';
export const sql = neon(import.meta.env.NEON_DATABASE_URL);
Você agora pode usar o cliente Neon para consultar seu banco de dados de qualquer componente .astro
. O exemplo seguinte obtém a hora atual do banco de dados Postgres:
---
import { sql } from '../lib/neon';
const response = await sql`SELECT NOW() as current_time`;
const currentTime = response[0].current_time;
---
<h1>Hora Atual</h1>
<p>A hora é: {currentTime}</p>
A funcionalidade de ramificação do Neon permite que você crie cópias do seu banco de dados para desenvolvimenot ou testes. Use isso em seu projeto Astro ao criar diferentes variáveis de ambiente para cada branch:
NEON_DATABASE_URL=your_development_branch_url
NEON_DATABASE_URL=your_production_branch_url