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:
@@ -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
|
moduleDeclaration?: InternalModuleDeclaration
|
||||||
): Promise<void> => {
|
): Promise<void> => {
|
||||||
|
const pathToMigrations = __dirname + "/../migrations"
|
||||||
|
|
||||||
await ModulesSdkUtils.mikroOrmConnectionLoader({
|
await ModulesSdkUtils.mikroOrmConnectionLoader({
|
||||||
entities: [entity],
|
entities: [entity],
|
||||||
container,
|
container,
|
||||||
options,
|
options,
|
||||||
moduleDeclaration,
|
moduleDeclaration,
|
||||||
logger,
|
logger,
|
||||||
|
pathToMigrations,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,8 +28,13 @@ export function getMigration(
|
|||||||
|
|
||||||
const dbData = ModulesSdkUtils.loadDatabaseConfig("link_modules", options)
|
const dbData = ModulesSdkUtils.loadDatabaseConfig("link_modules", options)
|
||||||
const entity = generateEntity(joinerConfig, primary, foreign)
|
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
|
const tableName = entity.meta.collection
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ export default async (
|
|||||||
moduleDeclaration?: InternalModuleDeclaration
|
moduleDeclaration?: InternalModuleDeclaration
|
||||||
): Promise<void> => {
|
): Promise<void> => {
|
||||||
const entities = Object.values(PricingModels) as unknown as EntitySchema[]
|
const entities = Object.values(PricingModels) as unknown as EntitySchema[]
|
||||||
|
const pathToMigrations = __dirname + "/../migrations"
|
||||||
|
|
||||||
await ModulesSdkUtils.mikroOrmConnectionLoader({
|
await ModulesSdkUtils.mikroOrmConnectionLoader({
|
||||||
entities,
|
entities,
|
||||||
@@ -23,5 +24,6 @@ export default async (
|
|||||||
options,
|
options,
|
||||||
moduleDeclaration,
|
moduleDeclaration,
|
||||||
logger,
|
logger,
|
||||||
|
pathToMigrations,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,8 +23,13 @@ export async function revertMigration({
|
|||||||
|
|
||||||
const dbData = ModulesSdkUtils.loadDatabaseConfig("pricing", options)!
|
const dbData = ModulesSdkUtils.loadDatabaseConfig("pricing", options)!
|
||||||
const entities = Object.values(PricingModels) as unknown as EntitySchema[]
|
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 {
|
try {
|
||||||
const migrator = orm.getMigrator()
|
const migrator = orm.getMigrator()
|
||||||
|
|||||||
@@ -21,8 +21,13 @@ export async function runMigrations({
|
|||||||
|
|
||||||
const dbData = ModulesSdkUtils.loadDatabaseConfig("pricing", options)!
|
const dbData = ModulesSdkUtils.loadDatabaseConfig("pricing", options)!
|
||||||
const entities = Object.values(PricingModels) as unknown as EntitySchema[]
|
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 {
|
try {
|
||||||
const migrator = orm.getMigrator()
|
const migrator = orm.getMigrator()
|
||||||
|
|||||||
@@ -33,8 +33,13 @@ export async function run({
|
|||||||
|
|
||||||
const dbData = ModulesSdkUtils.loadDatabaseConfig("pricing", options)!
|
const dbData = ModulesSdkUtils.loadDatabaseConfig("pricing", options)!
|
||||||
const entities = Object.values(PricingModels) as unknown as EntitySchema[]
|
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()
|
const manager = orm.em.fork()
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import { InternalModuleDeclaration, LoaderOptions } from "@medusajs/modules-sdk"
|
import { InternalModuleDeclaration, LoaderOptions } from "@medusajs/modules-sdk"
|
||||||
import { ModulesSdkTypes } from "@medusajs/types"
|
import { ModulesSdkTypes } from "@medusajs/types"
|
||||||
import { ModulesSdkUtils } from "@medusajs/utils"
|
import { ModulesSdkUtils } from "@medusajs/utils"
|
||||||
import * as ProductModels from "../models"
|
|
||||||
import { EntitySchema } from "@mikro-orm/core"
|
import { EntitySchema } from "@mikro-orm/core"
|
||||||
|
import * as ProductModels from "../models"
|
||||||
|
|
||||||
export default async (
|
export default async (
|
||||||
{
|
{
|
||||||
@@ -16,6 +16,7 @@ export default async (
|
|||||||
moduleDeclaration?: InternalModuleDeclaration
|
moduleDeclaration?: InternalModuleDeclaration
|
||||||
): Promise<void> => {
|
): Promise<void> => {
|
||||||
const entities = Object.values(ProductModels) as unknown as EntitySchema[]
|
const entities = Object.values(ProductModels) as unknown as EntitySchema[]
|
||||||
|
const pathToMigrations = __dirname + "/../migrations"
|
||||||
|
|
||||||
await ModulesSdkUtils.mikroOrmConnectionLoader({
|
await ModulesSdkUtils.mikroOrmConnectionLoader({
|
||||||
entities,
|
entities,
|
||||||
@@ -23,5 +24,6 @@ export default async (
|
|||||||
options,
|
options,
|
||||||
moduleDeclaration,
|
moduleDeclaration,
|
||||||
logger,
|
logger,
|
||||||
|
pathToMigrations,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ import * as ProductModels from "@models"
|
|||||||
|
|
||||||
import { LoaderOptions, Logger, ModulesSdkTypes } from "@medusajs/types"
|
import { LoaderOptions, Logger, ModulesSdkTypes } from "@medusajs/types"
|
||||||
|
|
||||||
import { EntitySchema } from "@mikro-orm/core"
|
|
||||||
import { DALUtils, ModulesSdkUtils } from "@medusajs/utils"
|
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
|
* 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 dbData = ModulesSdkUtils.loadDatabaseConfig("product", options)!
|
||||||
const entities = Object.values(ProductModels) as unknown as EntitySchema[]
|
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 {
|
try {
|
||||||
const migrator = orm.getMigrator()
|
const migrator = orm.getMigrator()
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { LoaderOptions, Logger, ModulesSdkTypes } from "@medusajs/types"
|
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 { 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
|
* 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 dbData = ModulesSdkUtils.loadDatabaseConfig("product", options)!
|
||||||
const entities = Object.values(ProductModels) as unknown as EntitySchema[]
|
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 {
|
try {
|
||||||
const migrator = orm.getMigrator()
|
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 * as ProductModels from "@models"
|
||||||
import { Product, ProductCategory, ProductVariant } 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 { EOL } from "os"
|
||||||
import { SqlEntityManager } from "@mikro-orm/postgresql"
|
|
||||||
import { resolve } from "path"
|
import { resolve } from "path"
|
||||||
import { DALUtils, ModulesSdkUtils } from "@medusajs/utils"
|
|
||||||
|
|
||||||
export async function run({
|
export async function run({
|
||||||
options,
|
options,
|
||||||
@@ -33,8 +33,13 @@ export async function run({
|
|||||||
|
|
||||||
const dbData = ModulesSdkUtils.loadDatabaseConfig("product", options)!
|
const dbData = ModulesSdkUtils.loadDatabaseConfig("product", options)!
|
||||||
const entities = Object.values(ProductModels) as unknown as EntitySchema[]
|
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()
|
const manager = orm.em.fork()
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -18,7 +18,6 @@
|
|||||||
"author": "Medusa",
|
"author": "Medusa",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@medusajs/types": "^1.10.2",
|
|
||||||
"@types/express": "^4.17.17",
|
"@types/express": "^4.17.17",
|
||||||
"cross-env": "^5.2.1",
|
"cross-env": "^5.2.1",
|
||||||
"express": "^4.18.2",
|
"express": "^4.18.2",
|
||||||
@@ -28,6 +27,10 @@
|
|||||||
"typescript": "^5.1.6"
|
"typescript": "^5.1.6"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"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",
|
"awilix": "^8.0.1",
|
||||||
"ulid": "^2.3.0"
|
"ulid": "^2.3.0"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,7 +2,8 @@ import { ModuleServiceInitializeOptions } from "@medusajs/types"
|
|||||||
|
|
||||||
export async function mikroOrmCreateConnection(
|
export async function mikroOrmCreateConnection(
|
||||||
database: ModuleServiceInitializeOptions["database"] & { connection?: any },
|
database: ModuleServiceInitializeOptions["database"] & { connection?: any },
|
||||||
entities: any[]
|
entities: any[],
|
||||||
|
pathToMigrations: string
|
||||||
) {
|
) {
|
||||||
let schema = database.schema || "public"
|
let schema = database.schema || "public"
|
||||||
|
|
||||||
@@ -33,7 +34,7 @@ export async function mikroOrmCreateConnection(
|
|||||||
tsNode: process.env.APP_ENV === "development",
|
tsNode: process.env.APP_ENV === "development",
|
||||||
type: "postgresql",
|
type: "postgresql",
|
||||||
migrations: {
|
migrations: {
|
||||||
path: __dirname + "/../migrations",
|
path: pathToMigrations,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ export async function mikroOrmConnectionLoader({
|
|||||||
options,
|
options,
|
||||||
moduleDeclaration,
|
moduleDeclaration,
|
||||||
entities,
|
entities,
|
||||||
|
pathToMigrations,
|
||||||
}: {
|
}: {
|
||||||
entities: any[]
|
entities: any[]
|
||||||
container: MedusaContainer
|
container: MedusaContainer
|
||||||
@@ -24,6 +25,7 @@ export async function mikroOrmConnectionLoader({
|
|||||||
| ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions
|
| ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions
|
||||||
moduleDeclaration?: ModulesSdkTypes.InternalModuleDeclaration
|
moduleDeclaration?: ModulesSdkTypes.InternalModuleDeclaration
|
||||||
logger?: Logger
|
logger?: Logger
|
||||||
|
pathToMigrations: string
|
||||||
}) {
|
}) {
|
||||||
let manager = (
|
let manager = (
|
||||||
options as ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions
|
options as ModulesSdkTypes.ModuleServiceInitializeCustomDataLayerOptions
|
||||||
@@ -41,7 +43,7 @@ export async function mikroOrmConnectionLoader({
|
|||||||
moduleDeclaration?.scope === MODULE_SCOPE.INTERNAL &&
|
moduleDeclaration?.scope === MODULE_SCOPE.INTERNAL &&
|
||||||
moduleDeclaration.resources === MODULE_RESOURCE_TYPE.SHARED
|
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({
|
manager ??= await loadDefault({
|
||||||
database: dbConfig,
|
database: dbConfig,
|
||||||
entities,
|
entities,
|
||||||
|
pathToMigrations,
|
||||||
})
|
})
|
||||||
|
|
||||||
container.register({
|
container.register({
|
||||||
@@ -74,6 +77,7 @@ export async function mikroOrmConnectionLoader({
|
|||||||
async function loadDefault({
|
async function loadDefault({
|
||||||
database,
|
database,
|
||||||
entities,
|
entities,
|
||||||
|
pathToMigrations,
|
||||||
}): Promise<SqlEntityManager<PostgreSqlDriver>> {
|
}): Promise<SqlEntityManager<PostgreSqlDriver>> {
|
||||||
if (!database) {
|
if (!database) {
|
||||||
throw new MedusaError(
|
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()
|
return orm.em.fork()
|
||||||
}
|
}
|
||||||
|
|
||||||
async function loadShared({ container, entities }) {
|
async function loadShared({ container, entities, pathToMigrations }) {
|
||||||
const sharedConnection = container.resolve(
|
const sharedConnection = container.resolve(
|
||||||
ContainerRegistrationKeys.PG_CONNECTION,
|
ContainerRegistrationKeys.PG_CONNECTION,
|
||||||
{
|
{
|
||||||
@@ -105,6 +113,7 @@ async function loadShared({ container, entities }) {
|
|||||||
database: {
|
database: {
|
||||||
connection: sharedConnection,
|
connection: sharedConnection,
|
||||||
},
|
},
|
||||||
|
pathToMigrations,
|
||||||
})
|
})
|
||||||
container.register({
|
container.register({
|
||||||
manager: asValue(manager),
|
manager: asValue(manager),
|
||||||
|
|||||||
@@ -6780,6 +6780,9 @@ __metadata:
|
|||||||
resolution: "@medusajs/utils@workspace:packages/utils"
|
resolution: "@medusajs/utils@workspace:packages/utils"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@medusajs/types": ^1.10.2
|
"@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
|
"@types/express": ^4.17.17
|
||||||
awilix: ^8.0.1
|
awilix: ^8.0.1
|
||||||
cross-env: ^5.2.1
|
cross-env: ^5.2.1
|
||||||
|
|||||||
Reference in New Issue
Block a user