D1Database
import { D1Database } from "@pitlane/data-table-d1";A Database bound to Cloudflare D1.
The same shape SqliteDatabase and PostgresDatabase have: a Database
subclass that supplies its own driver, so every query, persistence and
migration method comes from remix/data-table unchanged.
Extends
Database<"sqlite">
Constructors
Constructor
new D1Database(binding, options?): D1Database;Parameters
binding
options?
Returns
D1Database
Overrides
Database<"sqlite">.constructorAccessors
capabilities
Get Signature
get capabilities(): DatabaseCapabilities;Immutable feature flags used by shared query and migration behavior.
Returns
DatabaseCapabilities
Inherited from
Database.capabilitiesdialect
Get Signature
get dialect(): dialect;Stable identifier for the SQL dialect.
Returns
dialect
Inherited from
Database.dialectMethods
batch()
batch(statements): Promise<D1BatchResult[]>;Runs statements together, atomically.
D1 has no transactions, so transaction() refuses. batch() is what it
offers instead, and this is it without reaching for the raw binding:
import { sql } from "remix/data-table";
await db.batch([
sql`insert into post (title) values (${title})`,
sql`update counter set posts = posts + 1`,
]);The statements are SqlStatements rather than query-builder calls,
because data-table exposes no way to build an operation without
running it. sql still parameterises the values.
Parameters
statements
SqlStatement[]
Returns
Promise<D1BatchResult[]>
close()
close(): Promise<void>;Closes resources owned by this database.
Returns
Promise<void>
A promise that resolves when owned resources have been released.
Inherited from
Database.closecount()
count<table>(table, options?): Promise<number>;Type Parameters
table
table extends AnyTable
Parameters
table
table
options?
CountOptions<table>
Returns
Promise<number>
Inherited from
Database.countcreate()
Call Signature
create<table>(
table,
values,
options?): Promise<WriteResult>;Type Parameters
table
table extends AnyTable
Parameters
table
table
values
Partial<TableRow<table>>
options?
CreateResultOptions
Returns
Promise<WriteResult>
Inherited from
Database.createCall Signature
create<table, relations>(
table,
values,
options): Promise<{ [key in string | number | symbol]: ({ [key in string]: { [column in string]: ColumnOutput<TableColumns<table>[column]> }[key] } & { [key in string | number | symbol]: { [name in string | number | symbol]: RelationResult<relations[name]> }[key] })[key] }>;Type Parameters
table
table extends AnyTable
relations
relations extends RelationMapForSourceName<TableName<table>> = {
}
Parameters
table
table
values
Partial<TableRow<table>>
options
CreateRowOptions<table, relations>
Returns
Promise<{ [key in string | number | symbol]: ({ [key in string]: { [column in string]: ColumnOutput<TableColumns<table>[column]> }[key] } & { [key in string | number | symbol]: { [name in string | number | symbol]: RelationResult<relations[name]> }[key] })[key] }>
Inherited from
Database.createcreateMany()
Call Signature
createMany<table>(
table,
values,
options?): Promise<WriteResult>;Type Parameters
table
table extends AnyTable
Parameters
table
table
values
Partial<{ [key in string]: { [column in string]: ColumnOutput<TableColumns<table>[column]> }[key] }>[]
options?
CreateManyResultOptions
Returns
Promise<WriteResult>
Inherited from
Database.createManyCall Signature
createMany<table>(
table,
values,
options): Promise<{ [key in string]: { [column in string]: ColumnOutput<TableColumns<table>[column]> }[key] }[]>;Type Parameters
table
table extends AnyTable
Parameters
table
table
values
Partial<{ [key in string]: { [column in string]: ColumnOutput<TableColumns<table>[column]> }[key] }>[]
options
CreateManyRowsOptions
Returns
Promise<{ [key in string]: { [column in string]: ColumnOutput<TableColumns<table>[column]> }[key] }[]>
Inherited from
Database.createManydelete()
delete<table>(table, value): Promise<boolean>;Type Parameters
table
table extends AnyTable
Parameters
table
table
value
PrimaryKeyInput<table>
Returns
Promise<boolean>
Inherited from
Database.deletedeleteMany()
deleteMany<table>(table, options): Promise<WriteResult>;Type Parameters
table
table extends AnyTable
Parameters
table
table
options
DeleteManyOptions<table>
Returns
Promise<WriteResult>
Inherited from
Database.deleteManyexec()
Call Signature
exec(statement, values?): Promise<DataManipulationResult>;Parameters
statement
string | SqlStatement
values?
unknown[]
Returns
Promise<DataManipulationResult>
Inherited from
Database.execCall Signature
exec<input>(input): Promise<QueryExecutionResult<input>>;Type Parameters
input
input extends AnyQuery
Parameters
input
input
Returns
Promise<QueryExecutionResult<input>>
Inherited from
Database.execexecuteScript()
executeScript(sql): Promise<void>;Executes a migration or raw multi-statement SQL script.
Parameters
sql
string
SQL script to execute.
Returns
Promise<void>
A promise that resolves when execution completes.
Inherited from
Database.executeScriptfind()
find<table, relations>(
table,
value,
options?): Promise<
| { [key in string | number | symbol]: ({ [key in string]: { [column in string]: ColumnOutput<TableColumns<(...)>[column]> }[key] } & { [key in string | number | symbol]: { [name in string | number | symbol]: RelationResult<relations[name]> }[key] })[key] }
| null>;Type Parameters
table
table extends AnyTable
relations
relations extends RelationMapForSourceName<TableName<table>> = {
}
Parameters
table
table
value
PrimaryKeyInput<table>
options?
with?
relations
Returns
Promise<
| { [key in string | number | symbol]: ({ [key in string]: { [column in string]: ColumnOutput<TableColumns<(...)>[column]> }[key] } & { [key in string | number | symbol]: { [name in string | number | symbol]: RelationResult<relations[name]> }[key] })[key] }
| null>
Inherited from
Database.findfindMany()
findMany<table, relations>(table, options?): Promise<{ [key in string | number | symbol]: ({ [key in string]: { [column in string]: ColumnOutput<TableColumns<(...)>[column]> }[key] } & { [key in string | number | symbol]: { [name in string | number | symbol]: RelationResult<relations[name]> }[key] })[key] }[]>;Type Parameters
table
table extends AnyTable
relations
relations extends RelationMapForSourceName<TableName<table>> = {
}
Parameters
table
table
options?
FindManyOptions<table, relations>
Returns
Promise<{ [key in string | number | symbol]: ({ [key in string]: { [column in string]: ColumnOutput<TableColumns<(...)>[column]> }[key] } & { [key in string | number | symbol]: { [name in string | number | symbol]: RelationResult<relations[name]> }[key] })[key] }[]>
Inherited from
Database.findManyfindOne()
findOne<table, relations>(table, options): Promise<
| { [key in string | number | symbol]: ({ [key in string]: { [column in string]: ColumnOutput<TableColumns<(...)>[column]> }[key] } & { [key in string | number | symbol]: { [name in string | number | symbol]: RelationResult<relations[name]> }[key] })[key] }
| null>;Type Parameters
table
table extends AnyTable
relations
relations extends RelationMapForSourceName<TableName<table>> = {
}
Parameters
table
table
options
FindOneOptions<table, relations>
Returns
Promise<
| { [key in string | number | symbol]: ({ [key in string]: { [column in string]: ColumnOutput<TableColumns<(...)>[column]> }[key] } & { [key in string | number | symbol]: { [name in string | number | symbol]: RelationResult<relations[name]> }[key] })[key] }
| null>
Inherited from
Database.findOnehasColumn()
hasColumn(table, column): Promise<boolean>;Reports whether a column exists on a table.
Parameters
table
TableRef
Table to inspect.
column
string
Column name to inspect.
Returns
Promise<boolean>
A promise that resolves to true when the column exists.
Inherited from
Database.hasColumnhasTable()
hasTable(table): Promise<boolean>;Reports whether a table exists.
Parameters
table
TableRef
Table to inspect.
Returns
Promise<boolean>
A promise that resolves to true when the table exists.
Inherited from
Database.hasTablemigrate()
migrate(migrations, options?): Promise<MigrateResult>;Applies or reverts migrations in order.
Parameters
migrations
Migrations
Migration descriptors or registry to apply.
options?
DatabaseMigrateOptions
Migration direction, bound, dry-run, and journal configuration.
Returns
Promise<MigrateResult>
The migrations applied or reverted by this run and their SQL scripts.
Inherited from
Database.migratemigrationStatus()
migrationStatus(migrations, options?): Promise<MigrationStatusEntry[]>;Reports the current state of the provided migrations.
Parameters
migrations
Migrations
Migration descriptors or registry to inspect.
options?
DatabaseMigrationStatusOptions
Migration journal configuration.
Returns
Promise<MigrationStatusEntry[]>
Status entries for the provided migrations.
Inherited from
Database.migrationStatusnow()
now(): unknown;Returns
unknown
Inherited from
Database.nowquery()
query<tableName, row, primaryKey>(table): Query<QueryTableInput<tableName, row, primaryKey>, { [key in string]: QueryColumnTypeMapFromRow<tableName, row>[key] }, row, {
}, BoundQueryPhase<"all">>;Type Parameters
tableName
tableName extends string
row
row extends Record<string, unknown>
primaryKey
primaryKey extends readonly keyof row & string[]
Parameters
table
QueryTableInput<tableName, row, primaryKey>
Returns
Query<QueryTableInput<tableName, row, primaryKey>, { [key in string]: QueryColumnTypeMapFromRow<tableName, row>[key] }, row, {
}, BoundQueryPhase<"all">>
Inherited from
Database.queryreset()
reset(options): Promise<void>;Wipes the database, applies migrations, and optionally seeds data.
Parameters
options
DatabaseResetOptions
Migrations and optional seed function used to rebuild the database.
Returns
Promise<void>
A promise that resolves when the database has been rebuilt.
Inherited from
Database.resettransaction()
transaction<result>(callback, options?): Promise<result>;Type Parameters
result
result
Parameters
callback
(database: Database<"sqlite">) => Promise<result>
options?
TransactionOptions
Returns
Promise<result>
Inherited from
Database.transactionupdate()
update<table, relations>(
table,
value,
changes,
options?): Promise<{ [key in string | number | symbol]: ({ [key in string]: { [column in string]: ColumnOutput<TableColumns<table>[column]> }[key] } & { [key in string | number | symbol]: { [name in string | number | symbol]: RelationResult<relations[name]> }[key] })[key] }>;Type Parameters
table
table extends AnyTable
relations
relations extends RelationMapForSourceName<TableName<table>> = {
}
Parameters
table
table
value
PrimaryKeyInput<table>
changes
Partial<TableRow<table>>
options?
UpdateOptions<table, relations>
Returns
Promise<{ [key in string | number | symbol]: ({ [key in string]: { [column in string]: ColumnOutput<TableColumns<table>[column]> }[key] } & { [key in string | number | symbol]: { [name in string | number | symbol]: RelationResult<relations[name]> }[key] })[key] }>
Inherited from
Database.updateupdateMany()
updateMany<table>(
table,
changes,
options): Promise<WriteResult>;Type Parameters
table
table extends AnyTable
Parameters
table
table
changes
Partial<TableRow<table>>
options
UpdateManyOptions<table>
Returns
Promise<WriteResult>
Inherited from
Database.updateManywipe()
wipe(): Promise<void>;Destructively recreates the configured database.
Returns
Promise<void>
A promise that resolves when the database is ready for use.
Inherited from
Database.wipe