Drizzle <> Turso
This guide assumes familiarity with:
根据 官方网站 的描述,Turso 是一款基于 libSQL 的边缘 SQLite 数据库即服务。
Drizzle ORM 原生支持 libSQL 驱动程序,我们采用 SQL 方言、特定于方言的驱动程序和语法,并镜像最流行的类 SQLite all
、get
、values
和 run
查询方法语法。
步骤 1 - 安装软件包
npm
yarn
pnpm
bun
npm i drizzle-orm @libsql/client -D drizzle-kit
步骤 2 - 初始化驱动程序
Drizzle 原生支持所有 @libsql/client
驱动程序变体:
@libsql/client | defaults to node import, automatically changes to web if target or platform is set for bundler, e.g. esbuild --platform=browser |
@libsql/client/node | node compatible module, supports :memory: , file , wss , http and turso connection protocols |
@libsql/client/web | module for fullstack web frameworks like next , nuxt , astro , etc. |
@libsql/client/http | module for http and https connection protocols |
@libsql/client/ws | module for ws and wss connection protocols |
@libsql/client/sqlite3 | module for :memory: and file connection protocols |
@libsql/client-wasm | Separate experimental package for WASM |
default
node
web
http
web sockets
wasm
import { drizzle } from 'drizzle-orm/libsql';
const db = drizzle({ connection: {
url: process.env.DATABASE_URL,
authToken: process.env.DATABASE_AUTH_TOKEN
}});
如果你需要提供现有的驱动程序:
default
web
import { drizzle } from 'drizzle-orm/libsql';
import { createClient } from '@libsql/client';
const client = createClient({
url: process.env.DATABASE_URL,
authToken: process.env.DATABASE_AUTH_TOKEN
});
const db = drizzle({ client });
const result = await db.select().from(users).all()
步骤 3 - 创建查询
import { drizzle } from 'drizzle-orm/libsql';
import * as s from 'drizzle-orm/sqlite-core';
const db = drizzle({ connection: {
url: process.env.DATABASE_URL,
authToken: process.env.DATABASE_AUTH_TOKEN
}});
const users = s.sqliteTable("users", {
id: s.integer(),
name: s.text(),
})
const result = await db.select().from(users);