### Initializing DB0 with better-sqlite3 Connector (JavaScript) Source: https://github.com/unjs/db0/blob/main/docs/2.connectors/sqlite.md This example shows how to initialize a DB0 database instance using the `better-sqlite3` connector. This connector requires the `better-sqlite3` npm package to be installed as a prerequisite. It configures an in-memory database by passing `name: ':memory:'` to the connector. ```JavaScript import { createDatabase } from "db0"; import sqlite from "db0/connectors/better-sqlite3"; const db = createDatabase( sqlite({ name: ":memory:", }), ); ``` -------------------------------- ### Connecting to SQLite and Performing Basic CRUD Operations with db0 Source: https://github.com/unjs/db0/blob/main/docs/1.guide/1.index.md This snippet demonstrates how to initialize db0 with a SQLite connector, create a 'users' table, insert a new user record, and query for users. It also illustrates the use of static parameters for table names, emphasizing the security warning against using untrusted sources for such parameters as they are not sanitized. ```TypeScript import { createDatabase } from "db0"; import sqlite from "db0/connectors/better-sqlite3"; // Initiate database with SQLite connector const db = createDatabase(sqlite({})); // Create users table await db.sql`CREATE TABLE IF NOT EXISTS users ("id" TEXT PRIMARY KEY, "firstName" TEXT, "lastName" TEXT, "email" TEXT)`; // Add a new user const userId = "1001"; await db.sql`INSERT INTO users VALUES (${userId}, 'John', 'Doe', '')`; // Query for users const { rows } = await db.sql`SELECT * FROM users WHERE id = ${userId}`; console.log(rows); // Using static parameters const tableName = "users"; const { rows } = await db.sql`SELECT * FROM {${tableName}} WHERE id = ${userId}`; console.log(rows); ``` -------------------------------- ### Initializing DB0 with PGlite Connector (JavaScript) Source: https://github.com/unjs/db0/blob/main/docs/2.connectors/pglite.md This snippet demonstrates how to import the necessary modules from 'db0' and 'db0/connectors/pglite' to create a database instance. It shows the basic setup for connecting DB0 to a Postgres database using the PGlite connector, where additional configuration options can be passed to the 'pglite' function. ```JavaScript import { createDatabase } from "db0"; import pglite from "db0/connectors/pglite"; const db = createDatabase( pglite({ /* options */ }), ); ``` -------------------------------- ### Initializing DB0 with sqlite3 Connector (JavaScript) Source: https://github.com/unjs/db0/blob/main/docs/2.connectors/sqlite.md This snippet illustrates initializing a DB0 database instance using the `sqlite3` connector. This connector depends on the `sqlite3` npm package, which must be installed separately. The `name` option is set to `:memory:` to create an in-memory database. ```JavaScript import { createDatabase } from "db0"; import sqlite from "db0/connectors/sqlite3"; const db = createDatabase( sqlite({ name: ":memory:", }), ); ``` -------------------------------- ### Initializing DB0 with PostgreSQL Connector (JavaScript) Source: https://github.com/unjs/db0/blob/main/docs/2.connectors/postgresql.md This snippet demonstrates how to initialize a `db0` database instance using the `postgresql` connector. It requires the `pg` dependency to be installed. The `createDatabase` function is used with the `postgresql` connector, which accepts an options object, here specifying `bindingName` to "DB" for the database instance. ```JavaScript import { createDatabase } from "db0"; import postgresql from "db0/connectors/postgresql"; const db = createDatabase( postgresql({ bindingName: "DB", }), ); ``` -------------------------------- ### Initializing DB0 with Bun SQLite Connector Source: https://github.com/unjs/db0/blob/main/docs/2.connectors/bun.md This snippet demonstrates how to initialize a DB0 database instance using the `bun-sqlite` connector. It imports `createDatabase` from `db0` and the `bunSqlite` connector, then creates a database instance by passing the connector to `createDatabase`. This setup allows DB0 to interact with a Bun SQLite database. ```js import { createDatabase } from "db0"; import bunSqlite from "db0/connectors/bun-sqlite"; const db = createDatabase(bunSqlite({})); ``` -------------------------------- ### Initializing DB0 with node-sqlite Connector (JavaScript) Source: https://github.com/unjs/db0/blob/main/docs/2.connectors/sqlite.md This snippet demonstrates initializing a DB0 database instance using the `node-sqlite` connector. This connector leverages native Node.js and Deno SQLite support, requiring no external dependencies. The configuration specifies an in-memory database by setting `name: ':memory:'`. ```JavaScript import { createDatabase } from "db0"; import sqlite from "db0/connectors/node-sqlite"; const db = createDatabase( sqlite({ name: ":memory:", }), ); ``` -------------------------------- ### Initializing DB0 with LibSQL Web Connector Source: https://github.com/unjs/db0/blob/main/docs/2.connectors/libsql.md This snippet illustrates the initialization of a DB0 database instance using the `libsql/web` connector, designed for web environments. Similar to the HTTP connector, it's initialized without specific URL options, suggesting a default or environment-configured connection for browser-based applications. ```TypeScript import { createDatabase } from "db0"; import libSql from "db0/connectors/libsql/web"; const db = createDatabase(libSql({})); ``` -------------------------------- ### Initializing DB0 with PostgreSQL Connector for Vercel Postgres (JavaScript) Source: https://github.com/unjs/db0/blob/main/docs/2.connectors/vercel.md This snippet demonstrates how to initialize a DB0 database instance using the generic `postgres` connector, which can be used to connect to Vercel Postgres. It imports the necessary `createDatabase` function from `db0` and the `postgres` connector, then instantiates the database by passing the connector with its configuration options. ```JavaScript import { createDatabase } from "db0"; import postgres from "db0/connectors/postgres"; const db = createDatabase( postgres({ /* options */ }), ); ``` -------------------------------- ### Initializing DB0 with MySQL2 Connector (JavaScript) Source: https://github.com/unjs/db0/blob/main/docs/2.connectors/mysql.md This snippet demonstrates how to initialize a DB0 database instance using the `mysql2` connector. It requires importing `createDatabase` from 'db0' and the `mysql` connector from 'db0/connectors/mysql2'. The `mysql` function is called with an options object to configure the connection. ```javascript import { createDatabase } from "db0"; import mysql from "db0/connectors/mysql2"; const db = createDatabase( mysql({ /* options */ }), ); ``` -------------------------------- ### Initializing DB0 with PlanetScale Connector in JavaScript Source: https://github.com/unjs/db0/blob/main/docs/2.connectors/planetscale.md This snippet demonstrates how to initialize a DB0 database instance using the PlanetScale connector. It requires the `@planetscale/database` dependency and configures the connection with the PlanetScale host, username, and password. The `createDatabase` function from `db0` is used with the `planetscale` connector. ```javascript import { createDatabase } from "db0"; import planetscale from "db0/connectors/planetscale"; const db = createDatabase( planetscale({ host: "aws.connect.psdb.cloud", username: "username", password: "password", }), ); ``` -------------------------------- ### Initializing DB0 with LibSQL HTTP Connector Source: https://github.com/unjs/db0/blob/main/docs/2.connectors/libsql.md This snippet shows how to create a DB0 database instance using the `libsql/http` connector, suitable for connecting to LibSQL databases over HTTP. The connector is initialized without specific URL options, implying it might connect to a default or pre-configured remote endpoint. ```TypeScript import { createDatabase } from "db0"; import libSql from "db0/connectors/libsql/http"; const db = createDatabase(libSql({})); ``` -------------------------------- ### Initializing DB0 with Cloudflare D1 Connector (JavaScript) Source: https://github.com/unjs/db0/blob/main/docs/2.connectors/cloudflare.md This snippet demonstrates how to initialize a DB0 database instance using the `cloudflare-d1` connector. It imports necessary modules and configures the connector with a `bindingName` to specify the D1 database binding in Cloudflare Workers. For the driver to function, the `globalThis.__env__.DB` value must be set. ```JavaScript import { createDatabase } from "db0"; import cloudflareD1 from "db0/connectors/cloudflare-d1"; const db = createDatabase( cloudflareD1({ bindingName: "DB", }), ); ``` -------------------------------- ### Initializing DB0 with LibSQL Node.js Connector Source: https://github.com/unjs/db0/blob/main/docs/2.connectors/libsql.md This snippet demonstrates how to initialize a DB0 database instance using the `libsql` connector for Node.js environments. It connects to a local SQLite database file specified by the `url` option, making it suitable for server-side applications. ```TypeScript import { createDatabase } from "db0"; import libSql from "db0/connectors/libsql"; const db = createDatabase(libSql({ url: `file:local.db` })); ``` -------------------------------- ### Integrating DB0 with Drizzle ORM in TypeScript Source: https://github.com/unjs/db0/blob/main/docs/3.integrations/drizzle.md This snippet demonstrates how to initialize a DB0 database instance using the `better-sqlite3` connector, perform basic SQL operations with the `db.sql` API (creating a table and inserting data), and then integrate with Drizzle ORM to leverage its typed API for more advanced queries like selecting all users. It highlights the seamless transition between DB0's simple API and Drizzle's powerful ORM capabilities. ```TypeScript import { createDatabase } from "db0"; import sqlite from "db0/connectors/better-sqlite3"; import { drizzle } from "db0/integrations/drizzle"; import { sqliteTable, text, numeric } from "drizzle-orm/sqlite-core"; // Initialize DB instance // You can use any other available connector const db = createDatabase(sqlite({})); // Use simple db0 API to make queries await db.sql`create table if not exists users ( id integer primary key autoincrement, full_name text )`; await db.sql`insert into users (full_name) values ('John Doe')`; // And then leverage drizzle typed API to make more advanced ones const drizzleDb = drizzle(db); await drizzleDb.select().from(users).all(); ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.