Skip to Content
SdkReactInternalClassesDatabaseManager

DatabaseManager

Defined in: src/lib/db/manager.ts:159 

Manages per-wallet WatermelonDB database instances.

Each wallet address gets its own isolated database. The manager handles:

  • Singleton caching per wallet
  • Automatic database switching when the wallet changes
  • Destructive schema migration detection and handling
  • Per-wallet storage key namespacing

Example

import { DatabaseManager, webPlatformStorage, sdkSchema, sdkMigrations } from '@reverbia/sdk/react'; import LokiJSAdapter from '@nozbe/watermelondb/adapters/lokijs'; const dbManager = new DatabaseManager({ dbNamePrefix: 'my-app', createAdapter: (dbName, schema, migrations) => new LokiJSAdapter({ schema, migrations, dbName, useWebWorker: false, useIncrementalIndexedDB: true, }), storage: webPlatformStorage, onDestructiveMigration: () => window.location.reload(), }); // Get the database for the current wallet const database = dbManager.getDatabase(walletAddress);

Constructors

Constructor

new DatabaseManager(options: DatabaseManagerOptions): DatabaseManager

Defined in: src/lib/db/manager.ts:170 

Parameters

ParameterType

options

DatabaseManagerOptions

Returns

DatabaseManager

Methods

getDatabase()

getDatabase(walletAddress?: string): Database

Defined in: src/lib/db/manager.ts:196 

Get or create a WatermelonDB Database instance for the given wallet.

If the wallet address has changed since the last call, the previous database instance is discarded and a new one is created.

Parameters

ParameterTypeDescription

walletAddress?

string

The wallet address to scope the database to. If undefined, uses a “guest” database.

Returns

Database

The WatermelonDB Database instance

Throws

If a destructive migration is in progress


getDbName()

getDbName(walletAddress?: string): string

Defined in: src/lib/db/manager.ts:181 

Get the database name for a given wallet address.

Parameters

ParameterType

walletAddress?

string

Returns

string


resetDatabase()

resetDatabase(): Promise<void>

Defined in: src/lib/db/manager.ts:239 

Reset the current database (useful for logout or testing).

Returns

Promise<void>

Last updated on