Drizzle <> Turso
根据官网,Turso 是一个由 libSQL 支持的边缘 SQLite 数据库服务。
Drizzle ORM 原生支持 libSQL 驱动,我们支持 SQL 方言以及特定方言的驱动和语法,并镜像了大多数流行的类似 SQLite 的 all
、get
、values
和 run
查询方法语法。
步骤 1 - 安装包
npm
yarn
pnpm
bun
npm i drizzle-orm @libsql/client
npm i -D drizzle-kit
第 2 步 - 初始化驱动
Drizzle 原生支持所有 @libsql/client
驱动变体
@libsql/client | 默认为 node 导入,如果为打包器设置了 target 或 platform (例如 esbuild --platform=browser ),则自动更改为 web |
@libsql/client/node | node 兼容模块,支持 :memory: 、file 、wss 、http 和 turso 连接协议 |
@libsql/client/web | 用于 next 、nuxt 、astro 等全栈 Web 框架的模块 |
@libsql/client/http | 用于 http 和 https 连接协议的模块 |
@libsql/client/ws | 用于 ws 和 wss 连接协议的模块 |
@libsql/client/sqlite3 | 用于 :memory: 和 file 连接协议的模块 |
@libsql/client-wasm | 用于 WASM 的独立实验包 |
默认
node
web
http
WebSocket
wasm
import { drizzle } from 'drizzle-orm/libsql';
const db = drizzle({ connection: {
url: process.env.DATABASE_URL,
authToken: process.env.DATABASE_AUTH_TOKEN
}});
如果您需要提供现有驱动程序
默认
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);