Remix
Remix
remix/data-table · InterfaceView Source

DatabaseAdapter

Summary

Runtime contract implemented by concrete database adapters.

Signature

interface DatabaseAdapter {
  capabilities: AdapterCapabilities;
  dialect: string;
  acquireMigrationLock(): Promise<void>;
  beginTransaction(options: TransactionOptions): Promise<TransactionToken>;
  commitTransaction(token: TransactionToken): Promise<void>;
  compileSql(
    operation:
      | SelectOperation<AnyTable>
      | CountOperation<AnyTable>
      | ExistsOperation<AnyTable>
      | InsertOperation<AnyTable>
      | InsertManyOperation<AnyTable>
      | UpdateOperation<AnyTable>
      | DeleteOperation<AnyTable>
      | UpsertOperation<AnyTable>
      | RawOperation
      | CreateTableOperation
      | AlterTableOperation
      | RenameTableOperation
      | DropTableOperation
      | CreateIndexOperation
      | DropIndexOperation
      | RenameIndexOperation
      | AddForeignKeyOperation
      | DropForeignKeyOperation
      | AddCheckOperation
      | DropCheckOperation,
  ): SqlStatement[];
  createSavepoint(token: TransactionToken, name: string): Promise<void>;
  execute(request: DataManipulationRequest): Promise<DataManipulationResult>;
  hasColumn(
    table: TableRef,
    column: string,
    transaction: TransactionToken,
  ): Promise<boolean>;
  hasTable(table: TableRef, transaction: TransactionToken): Promise<boolean>;
  migrate(request: DataMigrationRequest): Promise<DataMigrationResult>;
  releaseMigrationLock(): Promise<void>;
  releaseSavepoint(token: TransactionToken, name: string): Promise<void>;
  rollbackToSavepoint(token: TransactionToken, name: string): Promise<void>;
  rollbackTransaction(token: TransactionToken): Promise<void>;
}

Properties

capabilities

Feature flags describing the adapter's supported behaviors.

dialect

Database dialect name exposed by the adapter.

Methods

acquireMigrationLock(): Promise<void>

Acquires the adapter's migration lock when supported.

beginTransaction(options: TransactionOptions): Promise<TransactionToken>

Starts a new database transaction.

commitTransaction(token: TransactionToken): Promise<void>

Commits an open transaction.

compileSql(operation: SelectOperation<AnyTable> | CountOperation<AnyTable> | ExistsOperation<AnyTable> | InsertOperation<AnyTable> | InsertManyOperation<AnyTable> | UpdateOperation<AnyTable> | DeleteOperation<AnyTable> | UpsertOperation<AnyTable> | RawOperation | CreateTableOperation | AlterTableOperation | RenameTableOperation | DropTableOperation | CreateIndexOperation | DropIndexOperation | RenameIndexOperation | AddForeignKeyOperation | DropForeignKeyOperation | AddCheckOperation | DropCheckOperation): SqlStatement[]

Compiles a data or migration operation into executable SQL statements.

createSavepoint(token: TransactionToken, name: string): Promise<void>

Creates a savepoint inside an open transaction.

execute(request: DataManipulationRequest): Promise<DataManipulationResult>

Executes a data-manipulation request.

hasColumn(table: TableRef, column: string, transaction: TransactionToken): Promise<boolean>

Checks whether a column exists on a table.

hasTable(table: TableRef, transaction: TransactionToken): Promise<boolean>

Checks whether a table exists.

migrate(request: DataMigrationRequest): Promise<DataMigrationResult>

Executes a migration request.

releaseMigrationLock(): Promise<void>

Releases the adapter's migration lock when supported.

releaseSavepoint(token: TransactionToken, name: string): Promise<void>

Releases a previously created savepoint.

rollbackToSavepoint(token: TransactionToken, name: string): Promise<void>

Rolls back to a previously created savepoint.

rollbackTransaction(token: TransactionToken): Promise<void>

Rolls back an open transaction.