Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@agentuity/drizzle

Package Overview
Dependencies
Maintainers
4
Versions
113
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@agentuity/drizzle

Drizzle ORM integration with resilient PostgreSQL connections for Agentuity projects

npmnpm
Version
2.0.21
Version published
Weekly downloads
1.7K
-51.39%
Maintainers
4
Weekly downloads
 
Created
Source

@agentuity/drizzle

Drizzle ORM integration with resilient PostgreSQL connections for Agentuity projects.

Installation

bun add @agentuity/drizzle

Features

  • Type-safe queries - Full TypeScript support with Drizzle ORM's schema inference
  • Automatic reconnection - Built on @agentuity/postgres with exponential backoff
  • Convenient re-exports - Common Drizzle utilities available from a single import
  • Auth integration - Works seamlessly with @agentuity/auth via drizzleAdapter

Basic Usage

import { createPostgresDrizzle, pgTable, text, serial, eq } from '@agentuity/drizzle';

// Define your schema
const users = pgTable('users', {
	id: serial('id').primaryKey(),
	name: text('name').notNull(),
	email: text('email').notNull().unique(),
});

// Create database instance (uses DATABASE_URL by default)
const { db, close } = createPostgresDrizzle({
	schema: { users },
});

// Execute type-safe queries
const allUsers = await db.select().from(users);
const user = await db.select().from(users).where(eq(users.id, 1));

// Insert data
await db.insert(users).values({ name: 'Alice', email: 'alice@example.com' });

// Clean up when done
await close();

Custom Configuration

import { createPostgresDrizzle } from '@agentuity/drizzle';
import * as schema from './schema';

const { db, client, close } = createPostgresDrizzle({
	// Connection string (defaults to DATABASE_URL)
	connectionString: 'postgres://user:pass@localhost:5432/mydb',

	// Your Drizzle schema
	schema,

	// Enable query logging
	logger: true,

	// Reconnection settings
	reconnect: {
		maxAttempts: 5,
		initialDelayMs: 100,
		maxDelayMs: 30000,
	},

	// Callbacks
	onConnect: () => console.log('Connected to database'),
	onReconnected: () => console.log('Reconnected to database'),
});

// Access connection statistics
console.log(client.stats);
// { connected: true, reconnecting: false, totalConnections: 1, ... }

Using with @agentuity/auth

import { createPostgresDrizzle, drizzleAdapter } from '@agentuity/drizzle';
import { createAuth } from '@agentuity/auth';
import * as schema from './schema';

// Create database instance
const { db, close } = createPostgresDrizzle({ schema });

// Create auth with Drizzle adapter
const auth = createAuth({
	database: drizzleAdapter(db, {
		provider: 'pg',
	}),
});

Accessing the Underlying Client

The client property gives you access to the @agentuity/postgres client for raw queries:

const { db, client, close } = createPostgresDrizzle({ schema });

// Use Drizzle for type-safe queries
const users = await db.select().from(schema.users);

// Use the client for raw queries
const result = await client`SELECT NOW()`;

// Check connection status
if (client.connected) {
	console.log('Database is connected');
}

// Access connection statistics
console.log(client.stats);

Available Re-exports

Query Operators (from drizzle-orm)

import {
	sql,
	eq,
	and,
	or,
	not,
	desc,
	asc,
	gt,
	gte,
	lt,
	lte,
	ne,
	isNull,
	isNotNull,
	inArray,
	notInArray,
	between,
	like,
	ilike,
} from '@agentuity/drizzle';

Schema Definitions (from drizzle-orm/pg-core)

import {
	// Table and schema
	pgTable,
	pgSchema,
	pgEnum,

	// Column types
	text,
	varchar,
	char,
	integer,
	smallint,
	bigint,
	serial,
	smallserial,
	bigserial,
	boolean,
	timestamp,
	date,
	time,
	interval,
	json,
	jsonb,
	uuid,
	numeric,
	real,
	doublePrecision,
	inet,
	cidr,
	macaddr,
	macaddr8,

	// Constraints
	primaryKey,
	foreignKey,
	unique,
	uniqueIndex,
	index,
	check,
} from '@agentuity/drizzle';

Postgres Client (from @agentuity/postgres)

import {
	postgres,
	PostgresClient,
	type CallablePostgresClient,
	type PostgresConfig,
	type ReconnectConfig,
	type ConnectionStats,
} from '@agentuity/drizzle';

Auth Adapter (from better-auth)

import { drizzleAdapter } from '@agentuity/drizzle';

API Reference

createPostgresDrizzle(config?)

Creates a Drizzle ORM instance with a resilient PostgreSQL connection.

Parameters

ParameterTypeDescription
config.connectionStringstringPostgreSQL connection URL. Defaults to DATABASE_URL
config.connectionPostgresConfigFull connection configuration object
config.schemaTSchemaDrizzle schema for type-safe queries
config.loggerboolean | DrizzleLoggerEnable query logging
config.reconnectReconnectConfigReconnection behavior configuration
config.onConnect() => voidCalled when initially connected
config.onReconnected() => voidCalled after successful reconnection

Returns

PropertyTypeDescription
dbBunSQLDatabase<TSchema>The Drizzle database instance
clientCallablePostgresClientThe underlying postgres client
close() => Promise<void>Cleanup function

License

Apache-2.0

FAQs

Package last updated on 13 May 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts