Drizzle <> Turso

本指南假定您熟悉

根据官网,Turso 是一个由 libSQL 支持的边缘 SQLite 数据库服务。

Drizzle ORM 原生支持 libSQL 驱动,我们支持 SQL 方言以及特定方言的驱动和语法,并镜像了大多数流行的类似 SQLite 的 allgetvaluesrun 查询方法语法。

步骤 1 - 安装包

npm
yarn
pnpm
bun
npm i drizzle-orm @libsql/client
npm i -D drizzle-kit

第 2 步 - 初始化驱动

Drizzle 原生支持所有 @libsql/client 驱动变体

@libsql/client默认为 node 导入,如果为打包器设置了 targetplatform(例如 esbuild --platform=browser),则自动更改为 web
@libsql/client/nodenode 兼容模块,支持 :memory:filewsshttpturso 连接协议
@libsql/client/web用于 nextnuxtastro 等全栈 Web 框架的模块
@libsql/client/http用于 httphttps 连接协议的模块
@libsql/client/ws用于 wswss 连接协议的模块
@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);

接下来是什么?