@launch77/database
v0.2.1
Published
Database utilities and connection management for Launch77 apps using Drizzle ORM
Readme
@launch/database
Database utilities and connection management for Launch77 apps using Drizzle ORM with PostgreSQL.
Installation
This package is typically installed automatically when you add the database add-on to your app:
launch77 add-addon databaseOr manually:
npm install @launch/database drizzle-orm postgres
npm install -D drizzle-kitUsage
Basic Connection
import { initializeDatabase, getDatabaseConfig } from '@launch/database'
import * as schema from './db/schema'
const { db, close } = initializeDatabase(getDatabaseConfig(), schema)
// Use the db instance
const users = await db.select().from(schema.users)
// Close when done
await close()Environment Variables
Required environment variables:
DATABASE_URL=postgresql://user:password@localhost:5432/dbnameMigrations
Run migrations using Drizzle Kit:
# Generate migration
npx drizzle-kit generate
# Run migrations
npx drizzle-kit migrateOr programmatically:
import { runMigrations, getDatabaseUrl } from '@launch/database'
await runMigrations(getDatabaseUrl(), './drizzle')Features
- PostgreSQL connection management via
postgresdriver - Drizzle ORM integration
- Environment-based configuration
- Migration support
- TypeScript-first design
- Connection pooling
- SSL support for production
API
initializeDatabase(config, schema?)
Creates and initializes a database connection.
Parameters:
config: DatabaseConfig - Connection configurationschema: Optional schema object
Returns:
db: Drizzle database instanceclient: Postgres clientclose(): Function to close the connection
getDatabaseConfig()
Gets database configuration from environment variables.
getDatabaseUrl()
Gets the DATABASE_URL from environment variables.
validateDatabaseConfig()
Validates that required environment variables are set.
runMigrations(connectionString, migrationsFolder)
Runs pending database migrations.
