All aggregateFunctions of the schema as an {@link IndexableArray indexable array} ordered by name.
const functionArray = schema.aggregateFunctions;
const isAvailable = schema.aggregateFunctions.has('some_function');
const function = schema.aggregateFunctions.get('some_function');
const name = aggregateFunctions.name;
schema.tables.forEach(table => console.log(table.name));
Comment of the database object defined in database including {@link DbObject#commentData comment data}.
All materialized views of the schema as an {@link IndexableArray indexable array} ordered by name.
const mViewArray = schema.materializedViews;
const isAvailable = schema.materializedViews.has('admin_person');
const mView = schema.materializedViews.get('big_account');
const name = mView.name;
schema.materializedViews.forEach(mView => console.log(mView.name));
Name of the database object.
All normalFunctions of the schema as an {@link IndexableArray indexable array} ordered by name.
const functionArray = schema.normalFunctions;
const isAvailable = schema.normalFunctions.has('some_function');
const function = schema.normalFunctions.get('some_function');
const name = normalFunctions.name;
schema.tables.forEach(table => console.log(table.name));
Object identifier for the Schema
All procedures of the schema as an {@link IndexableArray indexable array} ordered by name.
const functionArray = schema.procedures;
const isAvailable = schema.procedures.has('some_procedure');
const function = schema.procedures.get('some_procedure');
const name = procedures.name;
schema.tables.forEach(table => console.log(table.name));
Schema of the object.
const sequenceArray = schema.sequences;
const isAvailable = schema.sequences.has('person_id_seq');
const sequence = schema.sequences.get('account_id_seq');
const name = sequence.name;
schema.sequences.forEach(sequence => console.log(sequence.name));
const tableArray = schema.tables;
const isAvailable = schema.tables.has('person');
const table = schema.tables.get('account');
const name = table.name;
schema.tables.forEach(table => console.log(table.name));
All custom database types of the schema as an {@link IndexableArray indexable array} ordered by name.
This list includes types originated from entities such as tables, views and materialized views. Entities are also composite types in PostgreSQL.
To exclude types originated from entities use types
method.
const typeArray = schema.typesIncludingEntities;
const isAvailable = schema.typesIncludingEntities.has('address');
const type = schema.typesIncludingEntities.get('address');
const columns = type.columns;
const viewArray = schema.views;
const isAvailable = schema.views.has('admin_person');
const view = schema.views.get('big_account');
const name = view.name;
schema.views.forEach(view => console.log(view.name));
All windowFunctions of the schema as an {@link IndexableArray indexable array} ordered by name.
const functionArray = schema.windowFunctions;
const isAvailable = schema.windowFunctions.has('some_function');
const function = schema.windowFunctions.get('some_function');
const name = windowFunctions.name;
schema.tables.forEach(table => console.log(table.name));
Data which is extracted from database object's comment. Data is extracted from text between special case-insensitive tag
(default: [pg-structure][/pg-structure]
) and converted to JavaScript object using JSON5.
Token name can be specified by using commentDataToken
arguments.
For details of JSON5, see it's web site: https://json5.org.
// "Account details. [pg-structure]{ extraData: 2 }[/pg-structure] Also used for logging."
table.comment; // "Account details. [pg-structure]{ extraData: 2 }[/pg-structure] Also used for logging."
table.commentWithoutData; // "Account details. Also used for logging."
table.commentData; // { extraData: 2 }
table.commentData.extraData; // 2
Description or comment of the database object defined in database. If comment contains {@link DbObject#commentData comment data}, it is removed.
// "Account details. [pg-structure]{ extraData: 2 }[/pg-structure] Also used for logging."
table.commentWithoutData; // "Account details. Also used for logging."
Full name of the database object including database name.
Full name of the database object including parent name.
All {@link Function functions} of the schema as an {@link IndexableArray indexable array} ordered by name.
const functionArray = schema.functions;
const isAvailable = schema.functions.has('some_function');
const function = schema.functions.get('some_function');
const name = function.name;
schema.tables.forEach(table => console.log(table.name));
Letter casing (i.e snakeCase
or camelCase
) of the database object name.
const name = entity.name; // ProductDetail
const caseType = entity.nameCaseType; // camelCase
const otherEntity = otherEntity.name; // member_protocol
const otherCaseType = otherEntity.nameCaseType; // snakeCase
Separator used in database object name. Empty string for came case and underscore for (_) snake case.
All custom database types of the schema as an {@link IndexableArray indexable array} ordered by name.
This list excludes types originated from entities such as tables, views and materialized views. Entities are also composite types in PostgreSQL.
To get all types including entities use typesIncludingEntities
method.
const typeArray = schema.types;
const isAvailable = schema.types.has('address');
const type = schema.types.get('address');
const columns = type.columns;
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.account") as Table
;
const table = db.get('contact'); // Returns contact table in public schema.
const column = db.get('contact.name'); // Returns name column of the contact table.
is the path of the requested item in dot (.) notation such as 'public.contact'
requested database object.
Generated using TypeDoc
Class which represent a PostgreSQL schema. Provides attributes and methods for details of the schema.