Registry / database / drizzle-snowflake

drizzle-snowflake

JSON →
library0.1.13jsnpmunverified

Drizzle ORM driver for Snowflake, version 0.1.13, released as a stable library with weekly updates. It integrates Snowflake's JDBC-like connection with Drizzle's type-safe query builder, supporting standard and Snowflake-specific column types (VARIANT, ARRAY, GEOGRAPHY). Built on the official snowflake-sdk, it offers both async (pooled) and sync (single connection) modes. Differentiators include full Drizzle ORM compatibility, semi-structured data support, and a standalone dialect module.

npm install drizzle-snowflake
INSTALL
IMPORT
SIG · DRIZZLE-SNOWFLAKE
D
drizzle-snowflake
databasejavascriptv0.1.13
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

drizzle
import { drizzle } from 'drizzle-snowflake'
import drizzle from 'drizzle-snowflake'
Named export, not default. The function is async when using connection config.
snowflakeTable
import { snowflakeTable } from 'drizzle-snowflake'
import { table } from 'drizzle-snowflake'
Use snowflakeTable for Snowflake-specific table definitions.
promisifyConnect
import { promisifyConnect } from 'drizzle-snowflake'
Used only when passing an explicit client instance.

Connects to Snowflake, defines a table, inserts a row, queries it, and closes the connection.

import { drizzle, snowflakeTable, integer, varchar, text } from 'drizzle-snowflake'; import { eq } from 'drizzle-orm'; const users = snowflakeTable('users', { id: integer('id').notNull(), name: varchar('name', { length: 256 }).notNull(), email: text('email'), }); const db = await drizzle({ connection: { account: process.env.SNOWFLAKE_ACCOUNT ?? '', username: process.env.SNOWFLAKE_USER ?? '', password: process.env.SNOWFLAKE_PASSWORD ?? '', database: 'MY_DB', warehouse: 'COMPUTE_WH', schema: 'PUBLIC', }, }); await db.insert(users).values({ id: 1, name: 'Alice', email: 'alice@example.com' }); const rows = await db.select().from(users).where(eq(users.name, 'Alice')); console.log(rows); await db.close();
Debug
Known issues
breakingdrizzle() is async when passing connection config as of v0.1.0+
fix
Use await drizzle({ connection: { ... } }) or handle the promise.
affects: >=0.1.0
gotchaVARIANT columns need PARSE_JSON() for inserts; direct string insertion fails
fix
Use db.execute(sql`INSERT ... SELECT PARSE_JSON(${JSON.stringify(data)})`)
affects: >=0.1.0
gotchapool: false requires single connection; not for production with high concurrency
fix
Use default pooling (e.g., { pool: { size: 4 } }) for production.
affects: >=0.1.0
deprecatedOlder versions (<0.1.0) used drizzle({ connection }) synchronously
fix
Upgrade to >=0.1.0 and add await.
affects: <0.1.0
Errors
Common errors & fixes
Error: Cannot find module 'drizzle-snowflake'
Missing installation or wrong import path
fix
Run: npm install drizzle-snowflake drizzle-orm snowflake-sdk
TypeError: drizzle is not a function
Default import used instead of named import
fix
Change to: import { drizzle } from 'drizzle-snowflake'
Snowflake: Client connection failed. Check account, username, password.
Invalid credentials or network issue
fix
Verify SNOWFLAKE_ACCOUNT includes org and account name (e.g., 'orgname-accountname')
Upgrade
Version history
0.1.13latest on npm
Audit
Dependencies
drizzle-ormrequiredPeer dependency: required for ORM operations, >=0.40.0
snowflake-sdkrequiredPeer dependency: underlying Snowflake client, >=1.6.0
Agent activity
5 hits · last 30 days
node
4
Resources
drizzle-snowflake — npm install drizzle-snowflake · libregistry