diff --git a/README.md b/README.md index 587524369..cf36d102b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[![Build Status](https://travis-ci.org/Vincit/objection.js.svg?branch=master)](https://travis-ci.org/Vincit/objection.js) [![Coverage Status](https://coveralls.io/repos/github/Vincit/objection.js/badge.svg?branch=master)](https://coveralls.io/github/Vincit/objection.js?branch=master) [![Join the chat at https://gitter.im/Vincit/objection.js](https://badges.gitter.im/Vincit/objection.js.svg)](https://gitter.im/Vincit/objection.js?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +[![Build Status](https://travis-ci.org/sqlwwx/objection.js.svg?branch=master)](https://travis-ci.org/sqlwwx/objection.js) [![Coverage Status](https://coveralls.io/repos/github/Vincit/objection.js/badge.svg?branch=master)](https://coveralls.io/github/Vincit/objection.js?branch=master) [![Join the chat at https://gitter.im/Vincit/objection.js](https://badges.gitter.im/Vincit/objection.js.svg)](https://gitter.im/Vincit/objection.js?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) # [Objection.js](http://vincit.github.io/objection.js) diff --git a/lib/model/Model.js b/lib/model/Model.js index a65c4eafa..3b1e4c680 100644 --- a/lib/model/Model.js +++ b/lib/model/Model.js @@ -15,7 +15,7 @@ const validate = require('./modelValidate').validate; const toDatabaseJson = require('./modelToJson').toDatabaseJson; const setDatabaseJson = require('./modelSet').setDatabaseJson; -const bindKnex = require('./modelBindKnex').bindKnex; +const { bindKnex, bindKnexRelations } = require('./modelBindKnex'); const visitModels = require('./modelVisitor').visitModels; const AjvValidator = require('./AjvValidator'); const QueryBuilder = require('../queryBuilder/QueryBuilder'); @@ -538,8 +538,12 @@ class Model { } } - static bindKnex(knex) { - return bindKnex(this, knex); + static bindKnex(knex, notAutoBindRelations) { + return bindKnex(this, knex, notAutoBindRelations); + } + + static bindKnexRelations(knex) { + return bindKnexRelations(this, knex); } static bindTransaction(trx) { diff --git a/lib/model/modelBindKnex.js b/lib/model/modelBindKnex.js index aeb63a0fc..384bc11b4 100644 --- a/lib/model/modelBindKnex.js +++ b/lib/model/modelBindKnex.js @@ -4,7 +4,13 @@ const inheritModel = require('./inheritModel').inheritModel; const staticHiddenProps = require('./modelUtils').staticHiddenProps; const defineNonEnumerableProperty = require('./modelUtils').defineNonEnumerableProperty; -function bindKnex(ModelClass, knex) { +function bindKnexRelations(ModelClass, knex) { + let BoundModelClass = getBoundModelFromCache(ModelClass, knex); + BoundModelClass = bindRelations(ModelClass, BoundModelClass, knex); + return BoundModelClass +} + +function bindKnex(ModelClass, knex, notAutoBindRelations) { let BoundModelClass = getBoundModelFromCache(ModelClass, knex); if (BoundModelClass === null) { @@ -14,7 +20,9 @@ function bindKnex(ModelClass, knex) { BoundModelClass.knex(knex); BoundModelClass = putBoundModelToCache(ModelClass, BoundModelClass, knex); - BoundModelClass = bindRelations(ModelClass, BoundModelClass, knex); + if (!notAutoBindRelations) { + BoundModelClass = bindRelations(ModelClass, BoundModelClass, knex); + } } return BoundModelClass; @@ -82,5 +90,6 @@ function bindRelations(ModelClass, BoundModelClass, knex) { } module.exports = { - bindKnex + bindKnex, + bindKnexRelations };