Skip to content

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.

Agregar Neon a tu proyecto de Astro

Section titled Agregar Neon a tu proyecto de Astro

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:

Terminal window
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);

Consultar tu base de datos de Neon

Section titled Consultar tu base de datos de Neon

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

Section titled 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

More backend service guides

Contribute Community Sponsor