Saltearse al contenido

Neon Postgres y Astro

Neon es una base de datos Postgres serverless totalmente gestionada. Separa el almacenamiento y el cálculo para ofrecer escalado automático, ramificación y almacenamiento sin límites.

Para usar Neon con Astro, necesitarás establecer una variable de entorno de Neon. Crea o edita el archivo .env en la raíz de tu proyecto, y agrega el siguiente código, reemplazando los detalles de tu proyecto:

.env
NEON_DATABASE_URL="postgresql://<user>:<password>@<endpoint_hostname>.neon.tech:<port>/<dbname>?sslmode=require"

Para mejor soporte de TypeScript, define las variables de entorno en un archivo src/env.d.ts:

src/env.d.ts
interface ImportMetaEnv {
readonly NEON_DATABASE_URL: string;
}
interface ImportMeta {
readonly env: ImportMetaEnv;
}
Más información sobre variables de entorno y archivos .env en Astro.

Installa el paquete @neondatabase/serverless para conectarse a Neon:

Ventana de terminal
npm install @neondatabase/serverless

Crea un nuevo archivo src/lib/neon.ts con el siguiente código para inicializar tu cliente de Neon:

src/lib/neon.ts
import { neon } from '@neondatabase/serverless';
export const sql = neon(import.meta.env.NEON_DATABASE_URL);

Ahora puedes usar el cliente de Neon para consultar tu base de datos desde cualquier componente .astro. El siguiente ejemplo recupera la hora actual de la base de datos de Postgres:

src/pages/index.astro
---
import { sql } from '../lib/neon';
const response = await sql`SELECT NOW() as current_time`;
const currentTime = response[0].current_time;
---
<h1>Tiempo actual</h1>
<p>El tiempo es: {currentTime}</p>

Ramificación de base de datos con Neon

Sección titulada Ramificación de base de datos con Neon

La característica de ramificación de Neon te permite crear copias de tu base de datos para desarrollo o pruebas. Utiliza esto en tu proyecto de Astro creando variables de entorno diferentes para cada rama:

.env.development
NEON_DATABASE_URL=your_development_branch_url
.env.production
NEON_DATABASE_URL=your_production_branch_url

Más guías de servicios backend

Contribuir Comunidad Patrocinador