Turso
Turso 是基於 libSQL 的邊緣資料庫 - libSQL 是 SQLite 的開放原始碼、開放貢獻分支。
它使您能夠將資料放置在全球超過 35 個地點,靠近您的用戶。
用法
您可以使用以下 Qwik Starter 腳本輕鬆新增 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 資料庫憑證,並將其分配給部署環境中的環境變數。
從資料庫網址開始,執行以下命令。
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(公開 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 文件。