fix(utils, product, pricing, link-modules): add missing dependencies for utils + fix migration path issue (#4915)

* fix: add missing dependencies for utils

* chore: migration path is set from the calling package

* chore: update changeset
This commit is contained in:
Riqwan Thamir
2023-08-31 09:16:02 +02:00
committed by GitHub
parent 4d16acf5f0
commit 87bade096e
15 changed files with 87 additions and 21 deletions

View File

@@ -0,0 +1,8 @@
---
"@medusajs/utils": patch
"@medusajs/product": patch
"@medusajs/pricing": patch
"@medusajs/link-modules": patch
---
fix(utils, product, pricing, link-modules): add missing dependencies for utils + fix migration path issue

View File

@@ -20,12 +20,15 @@ export function connectionLoader(entity: EntitySchema) {
>,
moduleDeclaration?: InternalModuleDeclaration
): Promise<void> => {
const pathToMigrations = __dirname + "/../migrations"
await ModulesSdkUtils.mikroOrmConnectionLoader({
entities: [entity],
container,
options,
moduleDeclaration,
logger,
pathToMigrations,
})
}
}

View File

@@ -28,8 +28,13 @@ export function getMigration(
const dbData = ModulesSdkUtils.loadDatabaseConfig("link_modules", options)
const entity = generateEntity(joinerConfig, primary, foreign)
const pathToMigrations = __dirname + "/../migrations"
const orm = await DALUtils.mikroOrmCreateConnection(dbData, [entity])
const orm = await DALUtils.mikroOrmCreateConnection(
dbData,
[entity],
pathToMigrations
)
const tableName = entity.meta.collection

View File

@@ -16,6 +16,7 @@ export default async (
moduleDeclaration?: InternalModuleDeclaration
): Promise<void> => {
const entities = Object.values(PricingModels) as unknown as EntitySchema[]
const pathToMigrations = __dirname + "/../migrations"
await ModulesSdkUtils.mikroOrmConnectionLoader({
entities,
@@ -23,5 +24,6 @@ export default async (
options,
moduleDeclaration,
logger,
pathToMigrations,
})
}

View File

@@ -23,8 +23,13 @@ export async function revertMigration({
const dbData = ModulesSdkUtils.loadDatabaseConfig("pricing", options)!
const entities = Object.values(PricingModels) as unknown as EntitySchema[]
const pathToMigrations = __dirname + "/../migrations"
const orm = await DALUtils.mikroOrmCreateConnection(dbData, entities)
const orm = await DALUtils.mikroOrmCreateConnection(
dbData,
entities,
pathToMigrations
)
try {
const migrator = orm.getMigrator()

View File

@@ -21,8 +21,13 @@ export async function runMigrations({
const dbData = ModulesSdkUtils.loadDatabaseConfig("pricing", options)!
const entities = Object.values(PricingModels) as unknown as EntitySchema[]
const pathToMigrations = __dirname + "/../migrations"
const orm = await DALUtils.mikroOrmCreateConnection(dbData, entities)
const orm = await DALUtils.mikroOrmCreateConnection(
dbData,
entities,
pathToMigrations
)
try {
const migrator = orm.getMigrator()

View File

@@ -33,8 +33,13 @@ export async function run({
const dbData = ModulesSdkUtils.loadDatabaseConfig("pricing", options)!
const entities = Object.values(PricingModels) as unknown as EntitySchema[]
const pathToMigrations = __dirname + "/../migrations"
const orm = await DALUtils.mikroOrmCreateConnection(dbData, entities)
const orm = await DALUtils.mikroOrmCreateConnection(
dbData,
entities,
pathToMigrations
)
const manager = orm.em.fork()
try {

View File

@@ -1,8 +1,8 @@
import { InternalModuleDeclaration, LoaderOptions } from "@medusajs/modules-sdk"
import { ModulesSdkTypes } from "@medusajs/types"
import { ModulesSdkUtils } from "@medusajs/utils"
import * as ProductModels from "../models"
import { EntitySchema } from "@mikro-orm/core"
import * as ProductModels from "../models"
export default async (
{
@@ -16,6 +16,7 @@ export default async (
moduleDeclaration?: InternalModuleDeclaration
): Promise<void> => {
const entities = Object.values(ProductModels) as unknown as EntitySchema[]
const pathToMigrations = __dirname + "/../migrations"
await ModulesSdkUtils.mikroOrmConnectionLoader({
entities,
@@ -23,5 +24,6 @@ export default async (
options,
moduleDeclaration,
logger,
pathToMigrations,
})
}

View File

@@ -2,8 +2,8 @@ import * as ProductModels from "@models"
import { LoaderOptions, Logger, ModulesSdkTypes } from "@medusajs/types"
import { EntitySchema } from "@mikro-orm/core"
import { DALUtils, ModulesSdkUtils } from "@medusajs/utils"
import { EntitySchema } from "@mikro-orm/core"
/**
* This script is only valid for mikro orm managers. If a user provide a custom manager
@@ -23,8 +23,13 @@ export async function revertMigration({
const dbData = ModulesSdkUtils.loadDatabaseConfig("product", options)!
const entities = Object.values(ProductModels) as unknown as EntitySchema[]
const pathToMigrations = __dirname + "/../migrations"
const orm = await DALUtils.mikroOrmCreateConnection(dbData, entities)
const orm = await DALUtils.mikroOrmCreateConnection(
dbData,
entities,
pathToMigrations
)
try {
const migrator = orm.getMigrator()

View File

@@ -1,7 +1,7 @@
import { LoaderOptions, Logger, ModulesSdkTypes } from "@medusajs/types"
import * as ProductModels from "@models"
import { EntitySchema } from "@mikro-orm/core"
import { DALUtils, ModulesSdkUtils } from "@medusajs/utils"
import { EntitySchema } from "@mikro-orm/core"
import * as ProductModels from "@models"
/**
* This script is only valid for mikro orm managers. If a user provide a custom manager
@@ -21,8 +21,13 @@ export async function runMigrations({
const dbData = ModulesSdkUtils.loadDatabaseConfig("product", options)!
const entities = Object.values(ProductModels) as unknown as EntitySchema[]
const pathToMigrations = __dirname + "/../migrations"
const orm = await DALUtils.mikroOrmCreateConnection(dbData, entities)
const orm = await DALUtils.mikroOrmCreateConnection(
dbData,
entities,
pathToMigrations
)
try {
const migrator = orm.getMigrator()

View File

@@ -1,11 +1,11 @@
import { LoaderOptions, Logger, ModulesSdkTypes } from "@medusajs/types"
import { DALUtils, ModulesSdkUtils } from "@medusajs/utils"
import { EntitySchema } from "@mikro-orm/core"
import { SqlEntityManager } from "@mikro-orm/postgresql"
import * as ProductModels from "@models"
import { Product, ProductCategory, ProductVariant } from "@models"
import { EntitySchema } from "@mikro-orm/core"
import { LoaderOptions, Logger, ModulesSdkTypes } from "@medusajs/types"
import { EOL } from "os"
import { SqlEntityManager } from "@mikro-orm/postgresql"
import { resolve } from "path"
import { DALUtils, ModulesSdkUtils } from "@medusajs/utils"
export async function run({
options,
@@ -33,8 +33,13 @@ export async function run({
const dbData = ModulesSdkUtils.loadDatabaseConfig("product", options)!
const entities = Object.values(ProductModels) as unknown as EntitySchema[]
const pathToMigrations = __dirname + "/../migrations"
const orm = await DALUtils.mikroOrmCreateConnection(dbData, entities)
const orm = await DALUtils.mikroOrmCreateConnection(
dbData,
entities,
pathToMigrations
)
const manager = orm.em.fork()
try {

View File

@@ -18,7 +18,6 @@
"author": "Medusa",
"license": "MIT",
"devDependencies": {
"@medusajs/types": "^1.10.2",
"@types/express": "^4.17.17",
"cross-env": "^5.2.1",
"express": "^4.18.2",
@@ -28,6 +27,10 @@
"typescript": "^5.1.6"
},
"dependencies": {
"@medusajs/types": "^1.10.2",
"@mikro-orm/core": "5.7.12",
"@mikro-orm/migrations": "5.7.12",
"@mikro-orm/postgresql": "5.7.12",
"awilix": "^8.0.1",
"ulid": "^2.3.0"
},

View File

@@ -2,7 +2,8 @@ import { ModuleServiceInitializeOptions } from "@medusajs/types"
export async function mikroOrmCreateConnection(
database: ModuleServiceInitializeOptions["database"] & { connection?: any },
entities: any[]
entities: any[],
pathToMigrations: string
) {
let schema = database.schema || "public"
@@ -33,7 +34,7 @@ export async function mikroOrmCreateConnection(
tsNode: process.env.APP_ENV === "development",
type: "postgresql",
migrations: {
path: __dirname + "/../migrations",
path: pathToMigrations,
},
})
}

View File

@@ -16,6 +16,7 @@ export async function mikroOrmConnectionLoader({
options,
moduleDeclaration,
entities,
pathToMigrations,
}: {
entities: any[]
container: MedusaContainer
@@ -24,6 +25,7 @@ export async function mikroOrmConnectionLoader({
| ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions
moduleDeclaration?: ModulesSdkTypes.InternalModuleDeclaration
logger?: Logger
pathToMigrations: string
}) {
let manager = (
options as ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions
@@ -41,7 +43,7 @@ export async function mikroOrmConnectionLoader({
moduleDeclaration?.scope === MODULE_SCOPE.INTERNAL &&
moduleDeclaration.resources === MODULE_RESOURCE_TYPE.SHARED
) {
return await loadShared({ container, entities })
return await loadShared({ container, entities, pathToMigrations })
}
/**
@@ -64,6 +66,7 @@ export async function mikroOrmConnectionLoader({
manager ??= await loadDefault({
database: dbConfig,
entities,
pathToMigrations,
})
container.register({
@@ -74,6 +77,7 @@ export async function mikroOrmConnectionLoader({
async function loadDefault({
database,
entities,
pathToMigrations,
}): Promise<SqlEntityManager<PostgreSqlDriver>> {
if (!database) {
throw new MedusaError(
@@ -82,12 +86,16 @@ async function loadDefault({
)
}
const orm = await mikroOrmCreateConnection(database, entities)
const orm = await mikroOrmCreateConnection(
database,
entities,
pathToMigrations
)
return orm.em.fork()
}
async function loadShared({ container, entities }) {
async function loadShared({ container, entities, pathToMigrations }) {
const sharedConnection = container.resolve(
ContainerRegistrationKeys.PG_CONNECTION,
{
@@ -105,6 +113,7 @@ async function loadShared({ container, entities }) {
database: {
connection: sharedConnection,
},
pathToMigrations,
})
container.register({
manager: asValue(manager),

View File

@@ -6780,6 +6780,9 @@ __metadata:
resolution: "@medusajs/utils@workspace:packages/utils"
dependencies:
"@medusajs/types": ^1.10.2
"@mikro-orm/core": 5.7.12
"@mikro-orm/migrations": 5.7.12
"@mikro-orm/postgresql": 5.7.12
"@types/express": ^4.17.17
awilix: ^8.0.1
cross-env: ^5.2.1