From 4e8045a0ac44b1541ee3cd846079f55d3e0dc957 Mon Sep 17 00:00:00 2001 From: Riqwan Thamir Date: Tue, 2 May 2023 19:37:44 +0200 Subject: [PATCH] fix(medusa): Use query relation load strategy on Products (#3926) * fix(medusa): products retrieve uses query strategy for performance * chore: packaged version of medusa typeorm fix * chore: update path * chore: stock locations uses typeorm version * chore: resolve typeorm to medusa package * chore: Update medusa project in CI action * chore: temp disable transaction timeout for plugins --------- Co-authored-by: Oliver Windall Juhl <59018053+olivermrbl@users.noreply.github.com> Co-authored-by: olivermrbl --- .changeset/rare-tips-raise.md | 5 +++++ integration-tests/plugins/__tests__/inventory/order/order.js | 2 +- .../plugins/__tests__/medusa-plugin-sendgrid/index.js | 2 +- integration-tests/plugins/medusa-config.js | 1 + packages/medusa/src/repositories/product.ts | 5 ++++- 5 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 .changeset/rare-tips-raise.md diff --git a/.changeset/rare-tips-raise.md b/.changeset/rare-tips-raise.md new file mode 100644 index 0000000000..b1f4153067 --- /dev/null +++ b/.changeset/rare-tips-raise.md @@ -0,0 +1,5 @@ +--- +"@medusajs/medusa": patch +--- + +fix(medusa): products retrieve uses query strategy for performance diff --git a/integration-tests/plugins/__tests__/inventory/order/order.js b/integration-tests/plugins/__tests__/inventory/order/order.js index 3a5d1b4af2..aff714af85 100644 --- a/integration-tests/plugins/__tests__/inventory/order/order.js +++ b/integration-tests/plugins/__tests__/inventory/order/order.js @@ -18,7 +18,7 @@ const { simpleShippingOptionFactory, } = require("../../../factories") -jest.setTimeout(50000) +jest.setTimeout(150000) const adminHeaders = { headers: { Authorization: "Bearer test_token" } } diff --git a/integration-tests/plugins/__tests__/medusa-plugin-sendgrid/index.js b/integration-tests/plugins/__tests__/medusa-plugin-sendgrid/index.js index 37b5589a78..51f85c2519 100644 --- a/integration-tests/plugins/__tests__/medusa-plugin-sendgrid/index.js +++ b/integration-tests/plugins/__tests__/medusa-plugin-sendgrid/index.js @@ -6,7 +6,7 @@ const { setPort, useApi } = require("../../../helpers/use-api") const adminSeeder = require("../../helpers/admin-seeder") -jest.setTimeout(50000) +jest.setTimeout(10000) const { simpleOrderFactory, diff --git a/integration-tests/plugins/medusa-config.js b/integration-tests/plugins/medusa-config.js index d938550ca4..3666d9ab4e 100644 --- a/integration-tests/plugins/medusa-config.js +++ b/integration-tests/plugins/medusa-config.js @@ -27,6 +27,7 @@ module.exports = { database_type: "postgres", jwt_secret: "test", cookie_secret: "test", + database_extra: { idle_in_transaction_session_timeout: 0 } }, modules: { stockLocationService: { diff --git a/packages/medusa/src/repositories/product.ts b/packages/medusa/src/repositories/product.ts index 1c789c8e1f..34b77f97c9 100644 --- a/packages/medusa/src/repositories/product.ts +++ b/packages/medusa/src/repositories/product.ts @@ -72,7 +72,10 @@ export const ProductRepository = dataSource.getRepository(Product).extend({ async findOne( options: ExtendedFindConfig ): Promise { - const queryBuilder = await this.prepareQueryBuilder_(options) + const options_ = { ...options } + options_.relationLoadStrategy = "query" + + const queryBuilder = await this.prepareQueryBuilder_(options_) return await queryBuilder.getOne() },