Turso Database Guide
CLI Quick Start
# Install CLI
curl -sSfL https://get.tur.so/install.sh | bash
# Login
turso auth login
# Create database
turso db create my-database
turso db create my-database --location sin # Singapore
# Get connection URL and token
turso db show my-database --url
turso db tokens create my-database
# Open shell
turso db shell my-database
# Replicate to other regions
turso db replicate my-database nrt # Tokyo
TypeScript/JavaScript SDK
npm install @libsql/client
import { createClient } from "@libsql/client";
const client = createClient({
url: process.env.TURSO_DATABASE_URL!,
authToken: process.env.TURSO_AUTH_TOKEN!,
});
// Execute query
const result = await client.execute("SELECT * FROM users WHERE id = ?", [1]);
console.log(result.rows);
// Batch queries
await client.batch([
{ sql: "INSERT INTO users (name) VALUES (?)", args: ["Alice"] },
{ sql: "INSERT INTO users (name) VALUES (?)", args: ["Bob"] },
], "write");
// Transaction
const tx = await client.transaction("write");
await tx.execute("UPDATE accounts SET balance = balance - 100 WHERE id = 1");
await tx.execute("UPDATE accounts SET balance = balance + 100 WHERE id = 2");
await tx.commit();
With Drizzle ORM
import { drizzle } from 'drizzle-orm/libsql';
import { createClient } from '@libsql/client';
const client = createClient({
url: process.env.TURSO_DATABASE_URL!,
authToken: process.env.TURSO_AUTH_TOKEN!,
});
export const db = drizzle(client, { schema });