Postgres: Use another schema other than 'public'

This commit is contained in:
Rory Powell 2021-10-27 16:21:19 +01:00
parent 600e28e3d7
commit 0ddd689b89
1 changed files with 19 additions and 2 deletions

View File

@ -27,6 +27,7 @@ module PostgresModule {
database: string
user: string
password: string
schema: string
ssl?: boolean
ca?: string
rejectUnauthorized?: boolean
@ -64,6 +65,11 @@ module PostgresModule {
default: "root",
required: true,
},
schema: {
type: DatasourceFieldTypes.STRING,
default: "public",
required: true,
},
ssl: {
type: DatasourceFieldTypes.BOOLEAN,
default: false,
@ -137,8 +143,7 @@ module PostgresModule {
private readonly client: any
private readonly config: PostgresConfig
COLUMNS_SQL =
"select * from information_schema.columns where not table_schema = 'information_schema' and not table_schema = 'pg_catalog'"
COLUMNS_SQL!: string
PRIMARY_KEYS_SQL = `
select tc.table_schema, tc.table_name, kc.column_name as primary_key
@ -168,6 +173,18 @@ module PostgresModule {
}
this.client = this.pool
this.setSchema()
}
setSchema() {
if (!this.config.schema) {
this.config.schema = 'public'
}
this.client.on('connect', (client: any) => {
client.query(`SET search_path TO ${this.config.schema}`);
});
this.COLUMNS_SQL = `select * from information_schema.columns where table_schema = '${this.config.schema}'`
}
/**