chore(modules-sdk): parallel migrations (#13898)

This commit is contained in:
Carlos R. L. Rodrigues
2025-10-31 11:05:53 -03:00
committed by GitHub
parent fffc1be1e7
commit 13d7d15be5
14 changed files with 124 additions and 24 deletions

View File

@@ -1,3 +1,4 @@
import { asValue } from "@medusajs/deps/awilix"
import { RemoteFetchDataCallback } from "@medusajs/orchestration"
import {
ConfigModule,
@@ -21,6 +22,7 @@ import {
createMedusaContainer,
discoverFeatureFlagsFromDir,
dynamicImport,
executeWithConcurrency,
FeatureFlag,
GraphQLUtils,
isObject,
@@ -33,7 +35,6 @@ import {
promiseAll,
registerFeatureFlag,
} from "@medusajs/utils"
import { asValue } from "@medusajs/deps/awilix"
import { Link } from "./link"
import {
MedusaModule,
@@ -501,12 +502,14 @@ async function MedusaApp_({
modulesNames: string[]
action?: "run" | "revert" | "generate"
}) => {
const moduleResolutions = modulesNames.map((moduleName) => {
return {
moduleName,
resolution: MedusaModule.getModuleResolutions(moduleName),
const moduleResolutions = Array.from(new Set(modulesNames)).map(
(moduleName) => {
return {
moduleName,
resolution: MedusaModule.getModuleResolutions(moduleName),
}
}
})
)
const missingModules = moduleResolutions
.filter(({ resolution }) => !resolution)
@@ -524,7 +527,7 @@ async function MedusaApp_({
throw error
}
for (const { resolution: moduleResolution } of moduleResolutions) {
const run = async ({ resolution: moduleResolution }) => {
if (
!moduleResolution.options?.database &&
moduleResolution.moduleDeclaration?.scope === MODULE_SCOPE.INTERNAL
@@ -554,6 +557,11 @@ async function MedusaApp_({
await MedusaModule.migrateGenerate(migrationOptions)
}
}
await executeWithConcurrency(
moduleResolutions.map((a) => () => run(a)),
8 // parallel migrations
)
}
const runMigrations: RunMigrationFn = async (): Promise<void> => {