@jerrythomas/dbd-db
v2.2.2
Published
Database operations abstraction layer for DBD.
Maintainers
Readme
@jerrythomas/dbd-db
Database operations abstraction layer for dbd. Provides entity processing, dependency resolution, and a database adapter factory.
Features
- Base database adapter with common operations (apply, import, export)
- Entity processing — create entities from files, schemas, roles, extensions
- DDL generation and script combination
- Dependency graph builder with cycle detection and topological sorting
- Adapter factory with plugin registration
Usage
import { createAdapter, entityFromFile, sortByDependencies } from '@jerrythomas/dbd-db'
// Create a database adapter
const adapter = await createAdapter('postgres', connectionString, options)
// Process entities and resolve dependencies
const entity = entityFromFile('tables', 'public', 'users.sql')
const sorted = sortByDependencies(entities)API
Adapter Factory
createAdapter(dialect, connectionString, options)— create a dialect-specific adapterregisterAdapter(dialect, factory)— register a custom adaptergetAdapterInfo()— list registered adapters
Entity Processing
entityFromFile(type, schema, file)— create entity from a DDL fileentityFromSchemaName(schema)— create schema entityentityFromRoleName(role)— create role entityddlFromEntity(entity)— generate DDL from entitycombineEntityScripts(entities)— combine into single scriptvalidateEntity(entity)/getValidEntities(entities)/getInvalidEntities(entities)
Dependency Resolution
buildDependencyGraph(entities)— build directed dependency graphfindCycles(graph)— detect circular dependenciessortByDependencies(entities)— topological sortgroupByDependencyLevel(entities)— group for parallel execution
License
MIT
