Saltar al contenido

Neon Postgres y Astro

Neon es una base de datos Postgres serverless totalmente administrada. Separa el almacenamiento y el cómputo para ofrecer autoescalado, ramificación y almacenamiento ilimitado.

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 añade el siguiente código, reemplazando los detalles por los de tu propio proyecto:

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

Para un 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;
}
Aprende más sobre las variables de entorno y los archivos .env en Astro.

Instala el paquete @neondatabase/serverless para conectarte a Neon:

Ventana de la 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 obtiene la hora actual de la base de datos 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>Current Time</h1>
<p>The time is: {currentTime}</p>

La función de ramificación de Neon te permite crear copias de tu base de datos para desarrollo o pruebas. Usa esto en tu proyecto de Astro creando diferentes variables de entorno 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 de backend

Contribuir Comunidad Patrocinar