From ec5415ea1ad257cda64865ce9555138b4f8f186f Mon Sep 17 00:00:00 2001 From: Adrien de Peretti Date: Wed, 15 May 2024 17:52:26 +0200 Subject: [PATCH] chore(modules-sdk, medusa): Cleanup migration helpers (#7342) **What** Cleanup the migrations scripts --- packages/core/modules-sdk/src/medusa-app.ts | 16 ++-- packages/medusa/src/commands/migrate.js | 17 ++--- packages/medusa/src/loaders/medusa-app.ts | 83 ++++++++++++++++----- 3 files changed, 78 insertions(+), 38 deletions(-) diff --git a/packages/core/modules-sdk/src/medusa-app.ts b/packages/core/modules-sdk/src/medusa-app.ts index e3d7fdfaaa..0f9a392005 100644 --- a/packages/core/modules-sdk/src/medusa-app.ts +++ b/packages/core/modules-sdk/src/medusa-app.ts @@ -389,15 +389,15 @@ async function MedusaApp_({ } } - if (!revert) { - await MedusaModule.migrateUp( + if (revert) { + await MedusaModule.migrateDown( moduleResolution.definition.key, moduleResolution.resolutionPath as string, moduleResolution.options, moduleResolution.moduleExports ) } else { - await MedusaModule.migrateDown( + await MedusaModule.migrateUp( moduleResolution.definition.key, moduleResolution.resolutionPath as string, moduleResolution.options, @@ -411,15 +411,15 @@ async function MedusaApp_({ ...(sharedResourcesConfig?.database ?? {}), } - if (!revert) { - linkModuleMigration && - (await linkModuleMigration({ + if (revert) { + revertLinkModuleMigration && + (await revertLinkModuleMigration({ options: linkModuleOpt, injectedDependencies, })) } else { - revertLinkModuleMigration && - (await revertLinkModuleMigration({ + linkModuleMigration && + (await linkModuleMigration({ options: linkModuleOpt, injectedDependencies, })) diff --git a/packages/medusa/src/commands/migrate.js b/packages/medusa/src/commands/migrate.js index 9b9d112a71..a412043a1f 100644 --- a/packages/medusa/src/commands/migrate.js +++ b/packages/medusa/src/commands/migrate.js @@ -8,9 +8,12 @@ import { import configModuleLoader from "../loaders/config" import featureFlagLoader from "../loaders/feature-flags" import Logger from "../loaders/logger" -import { loadMedusaApp, migrateMedusaApp } from "../loaders/medusa-app" +import { + loadMedusaApp, + migrateMedusaApp, + revertMedusaApp, +} from "../loaders/medusa-app" import pgConnectionLoader from "../loaders/pg-connection" -import { MedusaAppMigrateDown } from "@medusajs/modules-sdk" const runLinkMigrations = async (directory) => { const configModule = configModuleLoader(directory) @@ -57,18 +60,12 @@ const main = async function ({ directory }) { }) if (args[0] === "run") { - await migrateMedusaApp( - { configModule, container }, - { registerInContainer: false } - ) + await migrateMedusaApp({ configModule, container }) Logger.info("Migrations completed.") process.exit() } else if (args[0] === "revert") { - await MedusaAppMigrateDown( - { configModule, container }, - { registerInContainer: false } - ) + await revertMedusaApp({ configModule, container }) await revertIsolatedModulesMigration(configModule) Logger.info("Migrations reverted.") } else if (args[0] === "show") { diff --git a/packages/medusa/src/loaders/medusa-app.ts b/packages/medusa/src/loaders/medusa-app.ts index ba51dca3de..25a38608ab 100644 --- a/packages/medusa/src/loaders/medusa-app.ts +++ b/packages/medusa/src/loaders/medusa-app.ts @@ -1,9 +1,10 @@ import { - MODULE_PACKAGE_NAMES, MedusaApp, + MedusaAppMigrateDown, MedusaAppMigrateUp, MedusaAppOutput, MedusaModule, + MODULE_PACKAGE_NAMES, Modules, ModulesDefinition, } from "@medusajs/modules-sdk" @@ -58,19 +59,18 @@ export function mergeDefaultModules( return configModules } -export async function migrateMedusaApp( - { - configModule, - container, - }: { - configModule: { - modules?: CommonTypes.ConfigModule["modules"] - projectConfig: CommonTypes.ConfigModule["projectConfig"] - } - container: MedusaContainer - }, - config = { registerInContainer: true } -): Promise { +async function runMedusaAppMigrations({ + configModule, + container, + revert = false, +}: { + configModule: { + modules?: CommonTypes.ConfigModule["modules"] + projectConfig: CommonTypes.ConfigModule["projectConfig"] + } + container: MedusaContainer + revert?: boolean +}): Promise { const injectedDependencies = { [ContainerRegistrationKeys.PG_CONNECTION]: container.resolve( ContainerRegistrationKeys.PG_CONNECTION @@ -92,12 +92,55 @@ export async function migrateMedusaApp( } const configModules = mergeDefaultModules(configModule.modules) - await MedusaAppMigrateUp({ - modulesConfig: configModules, - remoteFetchData: remoteQueryFetchData(container), - sharedContainer: container, - sharedResourcesConfig, - injectedDependencies, + if (revert) { + await MedusaAppMigrateDown({ + modulesConfig: configModules, + remoteFetchData: remoteQueryFetchData(container), + sharedContainer: container, + sharedResourcesConfig, + injectedDependencies, + }) + } else { + await MedusaAppMigrateUp({ + modulesConfig: configModules, + remoteFetchData: remoteQueryFetchData(container), + sharedContainer: container, + sharedResourcesConfig, + injectedDependencies, + }) + } +} + +export async function migrateMedusaApp({ + configModule, + container, +}: { + configModule: { + modules?: CommonTypes.ConfigModule["modules"] + projectConfig: CommonTypes.ConfigModule["projectConfig"] + } + container: MedusaContainer +}): Promise { + await runMedusaAppMigrations({ + configModule, + container, + }) +} + +export async function revertMedusaApp({ + configModule, + container, +}: { + configModule: { + modules?: CommonTypes.ConfigModule["modules"] + projectConfig: CommonTypes.ConfigModule["projectConfig"] + } + container: MedusaContainer +}): Promise { + await runMedusaAppMigrations({ + configModule, + container, + revert: true, }) }