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 文档。