Get started
Overview PostgreSQL MySQL SQLite Manage schema
Overview Column types Indexes & Constraints Migrations Views Schemas Access your data
Query Select Insert Update Delete Filters Joins Magic sql`` operator Performance
Queries Serverless Advanced
Set Operations Transactions Batch Dynamic query building Read Replicas Custom types Goodies Extensions
ESLint Plugin drizzle-zod drizzle-typebox drizzle-valibot Turso
According to the official website, Turso is a libSQL powered edge SQLite database as a service.
Drizzle ORM natively supports libSQL driver,
we embrace SQL dialects and dialect specific drivers and syntax and mirror most popular
SQLite-like all
, get
, values
and run
query methods syntax.
npm
yarn
pnpm
bun
npm i drizzle-orm @libsql/client
npm i -D drizzle-kit
yarn add drizzle-orm @libsql/client
yarn add -D drizzle-kit
pnpm add drizzle-orm @libsql/client
pnpm add -D drizzle-kit
bun add drizzle-orm @libsql/client
bun add -D drizzle-kit
import { drizzle } from 'drizzle-orm/libsql';
import { createClient } from '@libsql/client';
const client = createClient({ url: 'DATABASE_URL', authToken: 'DATABASE_AUTH_TOKEN' });
const db = drizzle(client);
const result = await db.select().from(users).all()
Unless you plan on writing every SQL query by hand, a table declaration is helpful:
import { sql } from "drizzle-orm";
import { text, integer, sqliteTable } from "drizzle-orm/sqlite-core";
const users = sqliteTable('users', {
id: text('id'),
textModifiers: text('text_modifiers').notNull().default(sql`CURRENT_TIMESTAMP`),
intModifiers: integer('int_modifiers', { mode: 'boolean' }).notNull().default(false),
});
For more details about column types, see the SQLite column types in Drizzle.