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:
Adrien de Peretti
2023-11-29 09:19:28 +01:00
committed by GitHub
parent c4deeee481
commit 8f25ed8a10
5 changed files with 28 additions and 3 deletions

View File

@@ -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

View File

@@ -23,6 +23,7 @@ export function connectionLoader(entity: EntitySchema) {
const pathToMigrations = __dirname + "/../migrations"
await ModulesSdkUtils.mikroOrmConnectionLoader({
moduleName: "link_module",
entities: [entity],
container,
options,

View File

@@ -19,6 +19,7 @@ export default async (
const pathToMigrations = __dirname + "/../migrations"
await ModulesSdkUtils.mikroOrmConnectionLoader({
moduleName: "pricing",
entities,
container,
options,

View File

@@ -19,6 +19,7 @@ export default async (
const pathToMigrations = __dirname + "/../migrations"
await ModulesSdkUtils.mikroOrmConnectionLoader({
moduleName: "product",
entities,
container,
options,

View File

@@ -12,12 +12,14 @@ import { mikroOrmCreateConnection } from "../../dal"
import { loadDatabaseConfig } from "../load-module-database-config"
export async function mikroOrmConnectionLoader({
moduleName,
container,
options,
moduleDeclaration,
entities,
pathToMigrations,
}: {
moduleName: string
entities: any[]
container: MedusaContainer
options?:
@@ -43,7 +45,18 @@ export async function mikroOrmConnectionLoader({
moduleDeclaration?.scope === MODULE_SCOPE.INTERNAL &&
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
dbConfig = {
...loadDatabaseConfig(
"product",
moduleName,
(options ?? {}) as ModulesSdkTypes.ModuleServiceInitializeOptions,
shouldSwallowError
),
@@ -95,7 +108,7 @@ async function loadDefault({
return orm.em.fork()
}
async function loadShared({ container, entities, pathToMigrations }) {
async function loadShared({ database, container, entities, pathToMigrations }) {
const sharedConnection = container.resolve(
ContainerRegistrationKeys.PG_CONNECTION,
{
@@ -111,6 +124,7 @@ async function loadShared({ container, entities, pathToMigrations }) {
const manager = await loadDefault({
entities,
database: {
...database,
connection: sharedConnection,
},
pathToMigrations,