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:
8
.changeset/selfish-trees-sip.md
Normal file
8
.changeset/selfish-trees-sip.md
Normal 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
|
||||
@@ -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,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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"
|
||||
},
|
||||
|
||||
@@ -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,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user