diff --git a/docs/api/databases/knex.md b/docs/api/databases/knex.md index 22bd6c8baa..266d661b4a 100644 --- a/docs/api/databases/knex.md +++ b/docs/api/databases/knex.md @@ -62,6 +62,7 @@ The Knex specific adapter options are: - `Model {Knex}` (**required**) - The KnexJS database instance - `name {string}` (**required**) - The name of the table - `schema {string}` (_optional_) - The name of the schema table prefix (example: `schema.table`) +- `tableOptions {only: boolean` (_optional_) - For PostgreSQL only. Argument for passing options to knex db builder. ONLY keyword is used before the tableName to discard inheriting tables' data. (https://knexjs.org/guide/query-builder.html#common) The [common API options](./common.md#options) are: diff --git a/packages/knex/src/adapter.ts b/packages/knex/src/adapter.ts index 7e559f53c2..0d27a81bf8 100644 --- a/packages/knex/src/adapter.ts +++ b/packages/knex/src/adapter.ts @@ -69,7 +69,7 @@ export class KnexAdapter< } db(params?: ServiceParams) { - const { Model, name, schema } = this.getOptions(params) + const { Model, name, schema, tableOptions } = this.getOptions(params) if (params && params.transaction && params.transaction.trx) { const { trx } = params.transaction @@ -77,7 +77,7 @@ export class KnexAdapter< return schema ? (trx.withSchema(schema).table(name) as Knex.QueryBuilder) : trx(name) } - return schema ? (Model.withSchema(schema).table(name) as Knex.QueryBuilder) : Model(name) + return schema ? (Model.withSchema(schema).table(name) as Knex.QueryBuilder) : Model(name, tableOptions) } knexify(knexQuery: Knex.QueryBuilder, query: Query = {}, parentKey?: string): Knex.QueryBuilder { diff --git a/packages/knex/src/declarations.ts b/packages/knex/src/declarations.ts index 70ad267dca..064283c6ee 100644 --- a/packages/knex/src/declarations.ts +++ b/packages/knex/src/declarations.ts @@ -5,6 +5,9 @@ export interface KnexAdapterOptions extends AdapterServiceOptions { Model: Knex name: string schema?: string + tableOptions?: { + only?: boolean + } } export interface KnexAdapterTransaction {