Turso
Turso 是基于 libSQL 的边缘数据库, 它是 SQLite 的开源开放贡献分支。
它使您能够将数据放置在全球35个位置附近,靠近您的用户。
使用方法
您可以通过使用以下 Qwik 起始脚本轻松添加 Turso:
npm run qwik add turso此命令将添加使用 Turso 所需的依赖项。
它还会在您的项目文件夹中添加新文件:
- src/lib/turso.ts
并添加或修改 .env.local 文件以包含以下内容
PRIVATE_TURSO_DB_URL=
PRIVATE_TURSO_DB_AUTH_TOKEN=使用文件数据库
对于本地开发和 CI 集成,使用本地数据库文件是理想的。
首先,通过运行 sqlite3 --version 检查您的机器上是否安装了 SQLite。
如果您得到的不是版本号(例如 0-14 20:58:05 554764a6e721fab307c63a4f98cd958c8428a5d9d8edfde951858d6fd02daapl),
请访问此链接以获取安装说明。
然后,运行以下命令创建一个 SQLite 文件数据库。
sqlite3 foo.db创建您的数据库模式。
sqlite> create table todo (id integer not null, task text, done int default 0);向表中插入一些数据。
sqlite> insert into todo(id, task) values(1, "去健身房");
sqlite> insert into todo(id, task) values(2, "购买杂货");退出 shell .quit
然后,在 .env.local 文件中将数据库文件路径分配给 PRIVATE_TURSO_DB_URL 环境变量。
PRIVATE_TURSO_DB_URL=file:foo.db注意:使用文件数据库时不需要数据库令牌。
使用 Turso 数据库
当您想要将项目部署到生产环境时,您可以将 安装 Turso CLI 到您的机器上,并创建一个 Turso 数据库。
使用 Turso CLI 的 db shell 命令向数据库发出查询。
turso db shell <database-name>创建您的数据库模式。
→  create table todo (id integer not null, task text, done int default 0);向表中插入一些数据。
→  insert into todo(id, task) values(1, "去健身房");
→  insert into todo(id, task) values(2, "购买杂货");退出 shell .quit
使用以下说明获取您的 Turso 数据库凭据, 并将其分配给部署环境中的环境变量。
从数据库 URL 开始,运行以下命令。
turso db show <database-name> --url复制生成的 URL,并将其分配给 PRIVATE_TURSO_DB_URL 环境变量。
然后,对于数据库身份验证令牌,运行以下命令。
turso db tokens create <database-name>复制生成的令牌,并将其分配给 PRIVATE_TURSO_DB_AUTH_TOKEN
环境变量。
如何在 Qwik 中使用 Turso
在您的路由中导入 tursoClient,并在 Qwik 的服务器端 API 中初始化一个数据库客户端实例,
这些 API 公开了 RequestEvent 对象,例如 routeLoader$()、routeAction$()、
server$() 和端点处理程序,
例如 onGet、onPost、onRequest。
import { tursoClient } from "~/utils/turso";
 
export const useRouteLoader = routeLoader$(
  async (requestEvent: RequestEventBase) => {
    const client = tursoClient(requestEvent);
 
    const items = await client.execute("select * from table");
 
    return {
      items: items.rows,
    };
  }
);有关更多信息,请访问 Turso 文档。
