pg-structure / Db
# Class: Db
Class which represent a database. Provides attributes and methods for details of the database.
# Properties
# id
• Readonly id: number
Random assigned id to db.
Defined in: pg-structure/db.ts:91
# name
• Readonly name: string
Name of database.
Defined in: pg-structure/db.ts:94
# schemas
• Readonly schemas: default<Schema, name, oid, true>
All schemas in the database as an {@link IndexableArray indexable array} ordered by their name.
# Example
const schemaArray = db.schemas;
const isAvailable = db.schemas.has('another_schema');
const public = db.schemas.get('public');
const name = public.name;
const names = db.schemas.map(schema => schema.name);
Defined in: pg-structure/db.ts:123
# serverVersion
• Readonly serverVersion: string
Version of the PostgreSQL Engine
Defined in: pg-structure/db.ts:97
# Accessors
# allTypes
• get allTypes(): default<Type, name, oid | classOid | arrayOid | internalName, true>
All types of the database including system types and entities.
Returned array have all objects, you may loop over them.
However two PostgreSQL schemas may have same named type. get method of
{@link IndexableArray https://www.npmjs.com/package/indexable-array} returns first one.
You may also use getAll or get(1234, { key: oid }).
see types, typesIncludingEntities, systemTypes
Returns: default<Type, name, oid | classOid | arrayOid | internalName, true>
Defined in: pg-structure/db.ts:236
# entities
• get entities(): default<Entity, name, oid, true>
All entities of the database. Returned array have all objects, you may loop over them.
However two PostgreSQL schemas may have same named entity. get method of
{@link IndexableArray https://www.npmjs.com/package/indexable-array} returns first one.
You may also use getAll or get(1234, { key: oid }).
Returns: default<Entity, name, oid, true>
Defined in: pg-structure/db.ts:167
# functions
• get functions(): default<Func, name, oid, true>
All entities of the database. Returned array have all objects, you may loop over them.
However two PostgreSQL schemas may have same named entity. get method of
{@link IndexableArray https://www.npmjs.com/package/indexable-array} returns first one.
You may also use getAll or get(1234, { key: oid }).
Returns: default<Func, name, oid, true>
Defined in: pg-structure/db.ts:261
# indexes
• get indexes(): default<Index, name, oid, true>
All indexes of the database. Returned array have all objects, you may loop over them.
However two PostgreSQL schemas may have same named index. get method of
{@link IndexableArray https://www.npmjs.com/package/indexable-array} returns first one.
You may also use getAll or get(1234, { key: oid }).
Returns: default<Index, name, oid, true>
Defined in: pg-structure/db.ts:247
# relationNameCollisions
• get relationNameCollisions(): undefined | CollisionsByTable
Name collisions of table relations if there are any, otherwise undefined.
Returns: undefined | CollisionsByTable
Defined in: pg-structure/db.ts:296
# systemTypes
• get systemTypes(): default<Type, name, oid | classOid | arrayOid | internalName, true>
All system types of the database. Returned array have all objects, you may loop over them.
However two PostgreSQL schemas may have same named type. get method of
{@link IndexableArray https://www.npmjs.com/package/indexable-array} returns first one.
You may also use getAll or get(1234, { key: oid }).
see types, typesIncludingEntities, allTypes
Returns: default<Type, name, oid | classOid | arrayOid | internalName, true>
Defined in: pg-structure/db.ts:216
# tables
• get tables(): default<Table, name, oid, true>
All tables of the database. Returned array have all objects, you may loop over them.
However Returned array have all objects, you may loop over them.
However two PostgreSQL schemas may have same named table. get method of
{@link IndexableArray https://www.npmjs.com/package/indexable-array} returns first one.
You may also use getAll or get(1234, { key: oid }).
Returns: default<Table, name, oid, true>
Defined in: pg-structure/db.ts:156
# types
• get types(): default<Type, name, oid | classOid | arrayOid | internalName, true>
All user defined types of the database excluding entities such as
table, {@link Views view}, materialized view and sequence types.
Entities are also composite types in PostgreSQL. To get all types including entities use typesIncludingEntities method.
Returned array have all objects, you may loop over them.
However two PostgreSQL schemas may have same named type. get method of
{@link IndexableArray https://www.npmjs.com/package/indexable-array} returns first one.
You may also use getAll or get(1234, { key: oid }).
see typesIncludingEntities, systemTypes, allTypes
Returns: default<Type, name, oid | classOid | arrayOid | internalName, true>
Defined in: pg-structure/db.ts:183
# typesIncludingEntities
• get typesIncludingEntities(): default<Type, name, oid | classOid | arrayOid | internalName, true>
All user defined types of the database including entities such as
table, {@link Views view}, materialized view and sequence types.
Entities are also composite types in PostgreSQL. To get all types excluding entities use types method.
{@link IndexableArray https://www.npmjs.com/package/indexable-array} returns first one.
You may also use getAll or get(1234, { key: oid }).
see types, systemTypes, allTypes
Returns: default<Type, name, oid | classOid | arrayOid | internalName, true>
Defined in: pg-structure/db.ts:197
# Methods
# get
▸ get(path: string): Column | Entity | Schema
Returns schema, table or column for given path. Path should be in dot (.) notation.
If no schema is provided looks into public schema as PostgreSQL does.
Note for TypeScript users: Since get() could return one of the many possible types, you may need to specify your expected type using as.
i.e. const result = db.get("public") as Schema;
# Example
const schema = db.get('public'); // Returns public schema.
const table = db.get('public.contact'); // Returns contact table in public schema.
const table2 = db.get('contact'); // Returns contact table in public schema.
const column = db.get('public.contact.name'); // Returns name column of the contact table in public schema.
const column2 = db.get('contact.name'); // Returns name column of the contact table in public schema.
# Parameters:
| Name | Type | Description |
|---|---|---|
path | string | is the path of the requested item in dot (.) notation such as public.contact |
Returns: Column | Entity | Schema
requested database object.
Defined in: pg-structure/db.ts:281
# serialize
▸ serialize(): string
Serializes object.
CAVEATS:
- Serialized data may or may not be deserialized with another version of
pg-structure. (Even between minor versions are not guaranteed). - Serialized data is not direct stringified version of objects.
- Ignores relation name function provided using
relationNameFunctionsargs, if it is not a module name.
# Example
import pgStructure, { deserialize } from "pg-structure";
const db = await pgStructure({ database: "db", user: "u", password: "pass" });
const serialized = db.serialize();
const otherDb = deserialize(serialized);
Returns: string
Defined in: pg-structure/db.ts:77
← Constraint DbObject →