-
Notifications
You must be signed in to change notification settings - Fork 642
Closed
Labels
Description
Hi i updated to objection 2.0.5 and got:
TypeError: Cannot read property 'unsafeKnex' of undefined
at WrapMysqlModifySubqueryTransformation.onConvertQueryBuilderBase (/home/dev/Projects/pageboard/server/0.7/packages/api/node_modules/objection/lib/queryBuilder/transformations/WrapMysqlModifySubqueryTransformation.js:20:30)
at CompositeQueryTransformation.onConvertQueryBuilderBase (/home/dev/Projects/pageboard/server/0.7/packages/api/node_modules/objection/lib/queryBuilder/transformations/CompositeQueryTransformation.js:13:29)
at convertQueryBuilderBase (/home/dev/Projects/pageboard/server/0.7/packages/api/node_modules/objection/lib/queryBuilder/operations/ObjectionToKnexConvertingOperation.js:93:25)
at arr.map.item (/home/dev/Projects/pageboard/server/0.7/packages/api/node_modules/objection/lib/queryBuilder/operations/ObjectionToKnexConvertingOperation.js:112:14)
at Array.map (<anonymous>)
at convertArray (/home/dev/Projects/pageboard/server/0.7/packages/api/node_modules/objection/lib/queryBuilder/operations/ObjectionToKnexConvertingOperation.js:102:14)
at args.map (/home/dev/Projects/pageboard/server/0.7/packages/api/node_modules/objection/lib/queryBuilder/operations/ObjectionToKnexConvertingOperation.js:63:14)
at Array.map (<anonymous>)
at convertArgs (/home/dev/Projects/pageboard/server/0.7/packages/api/node_modules/objection/lib/queryBuilder/operations/ObjectionToKnexConvertingOperation.js:57:15)
at KnexOperation.getKnexArgs (/home/dev/Projects/pageboard/server/0.7/packages/api/node_modules/objection/lib/queryBuilder/operations/ObjectionToKnexConvertingOperation.js:19:12)
at KnexOperation.onBuildKnex (/home/dev/Projects/pageboard/server/0.7/packages/api/node_modules/objection/lib/queryBuilder/operations/KnexOperation.js:8:52)
at HrefQueryBuilder.callOperationMethod (/home/dev/Projects/pageboard/server/0.7/packages/api/node_modules/objection/lib/queryBuilder/QueryBuilderOperationSupport.js:350:33)
at forEachOperation.op (/home/dev/Projects/pageboard/server/0.7/packages/api/node_modules/objection/lib/queryBuilder/QueryBuilderOperationSupport.js:445:14)
at HrefQueryBuilder.forEachOperation (/home/dev/Projects/pageboard/server/0.7/packages/api/node_modules/objection/lib/queryBuilder/QueryBuilderOperationSupport.js:287:37)
at HrefQueryBuilder.executeOnBuildKnex (/home/dev/Projects/pageboard/server/0.7/packages/api/node_modules/objection/lib/queryBuilder/QueryBuilderOperationSupport.js:443:10)
at buildKnexQuery (/home/dev/Projects/pageboard/server/0.7/packages/api/node_modules/objection/lib/queryBuilder/QueryBuilder.js:1580:11)
at HrefQueryBuilder.toKnexQuery (/home/dev/Projects/pageboard/server/0.7/packages/api/node_modules/objection/lib/queryBuilder/QueryBuilder.js:672:14)
at convertQueryBuilderFunction (/home/dev/Projects/pageboard/server/0.7/packages/api/node_modules/objection/lib/queryBuilder/operations/ObjectionToKnexConvertingOperation.js:137:25)
at Builder.convertedKnexArgumentFunction (/home/dev/Projects/pageboard/server/0.7/packages/api/node_modules/objection/lib/queryBuilder/operations/ObjectionToKnexConvertingOperation.js:122:7)
at Formatter.compileCallback (/home/dev/Projects/pageboard/server/0.7/packages/db/node_modules/knex/lib/formatter.js:221:14)
at Formatter.wrap (/home/dev/Projects/pageboard/server/0.7/packages/db/node_modules/knex/lib/formatter.js:179:38)
at QueryCompiler_PG.get (/home/dev/Projects/pageboard/server/0.7/packages/db/node_modules/knex/lib/query/compiler.js:880:26)
Protecting it
class WrapMysqlModifySubqueryTransformation extends QueryTransformation {
onConvertQueryBuilderBase(query, parentQuery) {
if (!parentQuery) return query;
const knex = parentQuery.unsafeKnex();
avoided the error.
Here's a place where it happens, but i had no time to simplify it:
var q = All.api.Href.query(trx)
.select(
raw(`jsonb_object_agg(
href.url,
jsonb_set(href.meta, '{mime}', to_jsonb(href.mime))
) AS hrefs`)
).from((builder) => {
builder.union([
collectHrefs({site, trx}, data),
collectHrefs({site, trx}, data, true)
]).as('href');
});