Turso
Turso 是基于 libSQL 的边缘数据库 - SQLite 的开源开放贡献分支。
它使您能够将数据放置在全球 35 个以上位置的靠近用户的位置。
用法
您可以使用以下 Qwik 启动脚本轻松添加 Turso
npm run qwik add turso
此命令将添加使用 Turso 所需的依赖项。
它还会在您的项目文件夹中添加新文件
src/lib/turso.ts
并添加或修改 .env.local
文件以包含
PRIVATE_TURSO_DATABASE_URL=
PRIVATE_TURSO_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, "Go to the gym");
sqlite> insert into todo(id, task) values(2, "Buy groceries");
退出 shell .quit
然后,将数据库文件路径分配给 .env.local
中的 PRIVATE_TURSO_DATABASE_URL
环境变量。
PRIVATE_TURSO_DATABASE_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, "Go to the gym");
→ insert into todo(id, task) values(2, "Buy groceries");
退出 shell .quit
使用以下说明获取您的 Turso 数据库凭据,并将它们分配给您的部署环境中的环境变量。
从数据库 URL 开始,运行以下命令。
turso db show <database-name> --url
复制生成的 URL 并将其分配给 PRIVATE_TURSO_DATABASE_URL
环境变量。
并且,对于数据库身份验证令牌,运行该命令。
turso db tokens create <database-name>
复制生成的令牌并将其分配给 PRIVATE_TURSO_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 文档。