feat(link-modules, pricing, product, utils): Custom database config in shared mode (#5755)
* feat(link-modules, pricing, product, utils): Should be able to set some custom database config even in shared mode * Create wet-hounds-retire.md
This commit is contained in:
@@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
"@medusajs/link-modules": patch
|
||||||
|
"@medusajs/pricing": patch
|
||||||
|
"@medusajs/product": patch
|
||||||
|
"@medusajs/utils": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
feat(link-modules, pricing, product, utils): Should be able to set some custom database config even in shared mode
|
||||||
@@ -23,6 +23,7 @@ export function connectionLoader(entity: EntitySchema) {
|
|||||||
const pathToMigrations = __dirname + "/../migrations"
|
const pathToMigrations = __dirname + "/../migrations"
|
||||||
|
|
||||||
await ModulesSdkUtils.mikroOrmConnectionLoader({
|
await ModulesSdkUtils.mikroOrmConnectionLoader({
|
||||||
|
moduleName: "link_module",
|
||||||
entities: [entity],
|
entities: [entity],
|
||||||
container,
|
container,
|
||||||
options,
|
options,
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ export default async (
|
|||||||
const pathToMigrations = __dirname + "/../migrations"
|
const pathToMigrations = __dirname + "/../migrations"
|
||||||
|
|
||||||
await ModulesSdkUtils.mikroOrmConnectionLoader({
|
await ModulesSdkUtils.mikroOrmConnectionLoader({
|
||||||
|
moduleName: "pricing",
|
||||||
entities,
|
entities,
|
||||||
container,
|
container,
|
||||||
options,
|
options,
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ export default async (
|
|||||||
const pathToMigrations = __dirname + "/../migrations"
|
const pathToMigrations = __dirname + "/../migrations"
|
||||||
|
|
||||||
await ModulesSdkUtils.mikroOrmConnectionLoader({
|
await ModulesSdkUtils.mikroOrmConnectionLoader({
|
||||||
|
moduleName: "product",
|
||||||
entities,
|
entities,
|
||||||
container,
|
container,
|
||||||
options,
|
options,
|
||||||
|
|||||||
@@ -12,12 +12,14 @@ import { mikroOrmCreateConnection } from "../../dal"
|
|||||||
import { loadDatabaseConfig } from "../load-module-database-config"
|
import { loadDatabaseConfig } from "../load-module-database-config"
|
||||||
|
|
||||||
export async function mikroOrmConnectionLoader({
|
export async function mikroOrmConnectionLoader({
|
||||||
|
moduleName,
|
||||||
container,
|
container,
|
||||||
options,
|
options,
|
||||||
moduleDeclaration,
|
moduleDeclaration,
|
||||||
entities,
|
entities,
|
||||||
pathToMigrations,
|
pathToMigrations,
|
||||||
}: {
|
}: {
|
||||||
|
moduleName: string
|
||||||
entities: any[]
|
entities: any[]
|
||||||
container: MedusaContainer
|
container: MedusaContainer
|
||||||
options?:
|
options?:
|
||||||
@@ -43,7 +45,18 @@ 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, pathToMigrations })
|
const shouldSwallowError = true
|
||||||
|
const dbConfig = loadDatabaseConfig(
|
||||||
|
moduleName,
|
||||||
|
(options ?? {}) as ModulesSdkTypes.ModuleServiceInitializeOptions,
|
||||||
|
shouldSwallowError
|
||||||
|
)
|
||||||
|
return await loadShared({
|
||||||
|
database: dbConfig,
|
||||||
|
container,
|
||||||
|
entities,
|
||||||
|
pathToMigrations,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -55,7 +68,7 @@ export async function mikroOrmConnectionLoader({
|
|||||||
)?.database?.connection
|
)?.database?.connection
|
||||||
dbConfig = {
|
dbConfig = {
|
||||||
...loadDatabaseConfig(
|
...loadDatabaseConfig(
|
||||||
"product",
|
moduleName,
|
||||||
(options ?? {}) as ModulesSdkTypes.ModuleServiceInitializeOptions,
|
(options ?? {}) as ModulesSdkTypes.ModuleServiceInitializeOptions,
|
||||||
shouldSwallowError
|
shouldSwallowError
|
||||||
),
|
),
|
||||||
@@ -95,7 +108,7 @@ async function loadDefault({
|
|||||||
return orm.em.fork()
|
return orm.em.fork()
|
||||||
}
|
}
|
||||||
|
|
||||||
async function loadShared({ container, entities, pathToMigrations }) {
|
async function loadShared({ database, container, entities, pathToMigrations }) {
|
||||||
const sharedConnection = container.resolve(
|
const sharedConnection = container.resolve(
|
||||||
ContainerRegistrationKeys.PG_CONNECTION,
|
ContainerRegistrationKeys.PG_CONNECTION,
|
||||||
{
|
{
|
||||||
@@ -111,6 +124,7 @@ async function loadShared({ container, entities, pathToMigrations }) {
|
|||||||
const manager = await loadDefault({
|
const manager = await loadDefault({
|
||||||
entities,
|
entities,
|
||||||
database: {
|
database: {
|
||||||
|
...database,
|
||||||
connection: sharedConnection,
|
connection: sharedConnection,
|
||||||
},
|
},
|
||||||
pathToMigrations,
|
pathToMigrations,
|
||||||
|
|||||||
Reference in New Issue
Block a user