Files
medusa-store/www/apps/book/app/advanced-development/modules/connection-loader/page.mdx
Shahed Nasser 4fe28f5a95 chore: reorganize docs apps (#7228)
* reorganize docs apps

* add README

* fix directory

* add condition for old docs
2024-05-03 17:36:38 +03:00

57 lines
1.9 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
export const metadata = {
title: `${pageNumber} Database Connection Loader`,
}
# {metadata.title}
In this document, youll learn about how to load the database connection in your module.
## Modules Database Connection
By default, a module will use the same database connection of the Medusa application.
To access those database credentials and ensure that MikroORMs [entity](https://mikro-orm.io/docs/entity-manager) and [transaction](https://mikro-orm.io/docs/transactions) managers use those credentials when performing database operations, you must pass a database connection loader in your modules definition.
Medusa provides a utility connection loader factory that handles registering the database options and entity and transaction managers into the modules container.
---
## How to Add a Database Connection Loader?
In your modules definition file, import the `ModulesSdkUtils` utility function from `@medusajs/utils`. Then, use its `mikroOrmConnectionLoaderFactory` function to create a connection loader and export it in the modules definition.
For example:
```ts title="src/modules/hello/index.ts"
// other imports...
import { ModulesSdkUtils } from "@medusajs/utils"
import { MyCustom } from "./models/my-custom"
const pathToMigrations = __dirname + "/migrations"
// ...
const connectionLoader = ModulesSdkUtils
.mikroOrmConnectionLoaderFactory({
moduleName,
moduleModels: [MyCustom],
migrationsPath: pathToMigrations,
})
export default {
// ...
loaders: [
// ...
connectionLoader,
],
}
```
The `mikroOrmConnectionLoaderFactory` function accepts an object with the following properties:
- `moduleName`: The name of the module.
- `moduleModules`: An array of data models in the module.
- `migrationsPath`: The path to the migrations file.
You can now implement data-management methods as explained in the next chapters.