Files
medusa-store/packages/product/src/scripts/migration-up.ts
Adrien de Peretti 6f1fa244fa chore(medusa-cli): Cleanup plugin setup (#4420)
* chore(medusa-cli): Cleanup plugin setup

* fix: logger types

* fix event bus local

* fix event bus redis

* Create late-dragons-collect.md

* move to ts

* remove unused command

* env

* fix
2023-06-28 16:37:25 +02:00

51 lines
1.4 KiB
TypeScript

import { LoaderOptions, Logger } from "@medusajs/types"
import {
ProductServiceInitializeCustomDataLayerOptions,
ProductServiceInitializeOptions,
} from "../types"
import { createConnection, loadDatabaseConfig } from "../utils"
import * as ProductModels from "@models"
import { EntitySchema } from "@mikro-orm/core"
/**
* This script is only valid for mikro orm managers. If a user provide a custom manager
* he is in charge of running the migrations.
* @param options
* @param logger
* @param moduleDeclaration
*/
export async function runMigrations({
options,
logger,
}: Pick<
LoaderOptions<
| ProductServiceInitializeOptions
| ProductServiceInitializeCustomDataLayerOptions
>,
"options" | "logger"
> = {}) {
logger ??= console as unknown as Logger
const dbData = loadDatabaseConfig(options)
const entities = Object.values(ProductModels) as unknown as EntitySchema[]
const orm = await createConnection(dbData, entities)
try {
const migrator = orm.getMigrator()
const pendingMigrations = await migrator.getPendingMigrations()
logger.info(`Running pending migrations: ${pendingMigrations}`)
await migrator.up({
migrations: pendingMigrations.map((m) => m.name),
})
logger.info("Product module migration executed")
} catch (error) {
logger.error(`Product module migration failed to run - Error: ${error}`)
}
await orm.close()
}