pg-structure / Options
# Interface: Options
Options for the pgStructure.
# Properties
# commentDataToken
• Optional commentDataToken: undefined | string
Tag name to extract JSON data from from database object's comments. For example by default JSON data between [pg-structure][/pg-structure]
is available imn database objects. Data can be retrieved with commentData method.
# Example
const config = {
commentDataToken: "pg-structure"
}
// Assuming `[pg-structure]{ level: 3 }[/pg-structure]` is written in database table comment/description.
const someData = db.get("public.account").commentData; // { level: 3 }
Defined in: types/index.ts:222
# envPrefix
• Optional envPrefix: undefined | string
Environment variable prefix to get database client details. If no client configuration is provided pg-structure tries to
get client details from environment variables to populate node-postgres config (See ClientConfig (opens new window) of pg).
All keys are built using this prefix in uppercase.
| Environment Varibale | ClientConfig (opens new window) Key |
|---|---|
| DB_DATABASE | database |
| DB_USER | user |
| DB_PASSWORD | password |
| DB_HOST | host |
| DB_PORT | port |
| DB_CONNECTION_STRING | connectionString |
| DB_SSL | ssl |
| ... | ... |
# Example
const config = { envPrefix: "DB" }
Defined in: types/index.ts:148
# excludeSchemas
• Optional excludeSchemas: undefined | string | string[]
List of the schemas or a pattern similar to SQL's LIKE to select excluded schemas.
Defined in: types/index.ts:165
# foreignKeyAliasSeparator
• Optional foreignKeyAliasSeparator: undefined | string
Character to separate {@link ForeignKey.sourceAlias source alias} and {@link ForeignKey.targetAlias target alias} in foreign key name.
Defined in: types/index.ts:171
# foreignKeyAliasTargetFirst
• Optional foreignKeyAliasTargetFirst: undefined | boolean
Whether first part of the foreign key aliases contains target alias (i.e company_employees) or source alias (i.e. employee_company).
Defined in: types/index.ts:174
# includeSchemas
• Optional includeSchemas: undefined | string | string[]
List of the schemas or a pattern similar to SQL's LIKE to select included schemas.
# Example 1
const config = { includeSchemas: "public_%" }; // include all schemas starting with "public_"
# Example 2
const config = { includeSchemas: ["public", "extra"] };
Defined in: types/index.ts:162
# includeSystemSchemas
• Optional includeSystemSchemas: undefined | boolean
Whether to include PostgreSQL system schemas (i.e. pg_catalog) from database.
Defined in: types/index.ts:168
# keepConnection
• Optional keepConnection: undefined | boolean
Prevents pg-structure to close given database connection.
Defined in: types/index.ts:225
# name
• Optional name: undefined | string
Name of the database. This is inferred if possible from client or connection string.
Defined in: types/index.ts:151
# relationNameFunctions
• Optional relationNameFunctions: undefined | string | RelationNameFunctions
Optional module that exports functions to generate names for relationships. If not provided, default naming functions are used. All necessary information such as table names, columns, foreign key, comment data can be accessed via passed relation parameter.
It is also possible to use one of the builtin naming functions: short, optimal or descriptive.
# Example 1
const config = {
relationNameFunctions: "short",
}
# Example 2
const config = {
relationNameFunctions: "custom-module",
}
# Example 3
const config = {
relationNameFunctions: require.resolve("./my-module"),
}
# Example 4
const config = {
relationNameFunctions: {
o2m: (relation) => some_func(relation.foreignKey.name),
m2o: (relation) => some_func(relation.foreignKey.name),
m2m: (relation) => some_func(relation.foreignKey.name),
},
}
Defined in: types/index.ts:208