Documentation / @tenancy-node/db / DatabaseDriver
Interface: DatabaseDriver
Defined in: db/src/drivers/driver.ts:28
Driver de un motor (Strategy). Todo lo que depende del motor pasa por aquí: crear y borrar bases y usuarios, candados y detección de errores. Los identificadores que recibe ya vienen validados por el paquete.
Properties
adminDatabase
readonlyadminDatabase:string|undefined
Defined in: db/src/drivers/driver.ts:37
Base a la que se conecta el usuario administrador (PostgreSQL necesita una).
defaultPort
readonlydefaultPort:number
Defined in: db/src/drivers/driver.ts:31
kind
readonlykind:DialectKind
Defined in: db/src/drivers/driver.ts:30
maxIdentifierLength
readonlymaxIdentifierLength:number
Defined in: db/src/drivers/driver.ts:33
Largo máximo de un nombre de base (64 en MySQL, 63 en PostgreSQL).
maxUserLength
readonlymaxUserLength:number
Defined in: db/src/drivers/driver.ts:35
Largo máximo de un usuario (32 en MySQL, 63 en PostgreSQL).
name
readonlyname:"mysql"|"postgres"|"sqlite"|"mssql"|"mariadb"
Defined in: db/src/drivers/driver.ts:29
supportsSchemas
readonlysupportsSchemas:boolean
Defined in: db/src/drivers/driver.ts:46
El motor admite aislar tenants por schema dentro de una base (PostgreSQL).
Methods
connect()
connect(
options,pool):OpenedConnection
Defined in: db/src/drivers/driver.ts:43
Abre un pool. onError recibe los errores de conexiones inactivas (por ejemplo, si la base se reinicia): sin ese manejador, un pool de pg tumba el proceso.
Parameters
options
pool
Returns
createDatabase()
createDatabase(
admin,name):Promise<void>
Defined in: db/src/drivers/driver.ts:64
Idempotente: si ya existe no hace nada.
Parameters
admin
name
string
Returns
Promise<void>
createRole()?
optionalcreateRole(admin,username,password):Promise<void>
Defined in: db/src/drivers/driver.ts:58
Crea (o actualiza) un rol con login, sin darle ninguna base.
Parameters
admin
username
string
password
string
Returns
Promise<void>
createSchema()?
optionalcreateSchema(admin,schema):Promise<void>
Defined in: db/src/drivers/driver.ts:54
Idempotente.
Parameters
admin
schema
string
Returns
Promise<void>
createUser()
createUser(
admin,username,password,database):Promise<void>
Defined in: db/src/drivers/driver.ts:68
Crea el usuario (si no existe) y le da acceso solo a database.
Parameters
admin
username
string
password
string
database
string
Returns
Promise<void>
databaseExists()
databaseExists(
admin,name):Promise<boolean>
Defined in: db/src/drivers/driver.ts:62
Parameters
admin
name
string
Returns
Promise<boolean>
dropDatabase()
dropDatabase(
admin,name):Promise<void>
Defined in: db/src/drivers/driver.ts:66
Idempotente.
Parameters
admin
name
string
Returns
Promise<void>
dropSchema()?
optionaldropSchema(admin,schema):Promise<void>
Defined in: db/src/drivers/driver.ts:56
Idempotente; borra también las tablas del schema.
Parameters
admin
schema
string
Returns
Promise<void>
dropUser()
dropUser(
admin,username):Promise<void>
Defined in: db/src/drivers/driver.ts:69
Parameters
admin
username
string
Returns
Promise<void>
grantSchema()?
optionalgrantSchema(admin,username,schema,database):Promise<void>
Defined in: db/src/drivers/driver.ts:60
Da al usuario del tenant acceso solo a su schema dentro de database.
Parameters
admin
username
string
schema
string
database
string
Returns
Promise<void>
isTransientError()
isTransientError(
error):boolean
Defined in: db/src/drivers/driver.ts:76
Errores que se resuelven reintentando la transacción (deadlock, espera de lock, serialización).
Parameters
error
unknown
Returns
boolean
isUniqueViolation()
isUniqueViolation(
error):boolean
Defined in: db/src/drivers/driver.ts:74
Parameters
error
unknown
Returns
boolean
schemaExists()?
optionalschemaExists(admin,schema):Promise<boolean>
Defined in: db/src/drivers/driver.ts:52
Parameters
admin
schema
string
Returns
Promise<boolean>
scope()?
optionalscope(base,schema):OpenedConnection
Defined in: db/src/drivers/driver.ts:51
Instancia Kysely sobre un pool existente que fija el search_path del schema en cada conexión que toma. No abre conexiones propias: cerrarla no cierra el pool.
Parameters
base
schema
string
Returns
withLock()
withLock<
T>(db,key,timeoutMs,fn):Promise<T>
Defined in: db/src/drivers/driver.ts:72
Ejecuta fn con un candado exclusivo entre procesos (GET_LOCK / pg_advisory_lock).
Type Parameters
T
T
Parameters
db
key
string
timeoutMs
number
fn
() => Promise<T>
Returns
Promise<T>