Before reading this article, make sure you have set up an AdminJS instance using one of the supported Plugins.
Additionally, you should have installed @adminjs/typeorm as described in Getting started section.
Your app.module.ts should have imports option which contains:
TypeOrmModule.forRoot(params) to set up TypeORM
AdminModule.createAdminAsync({ ... }
In your app.module.ts add these imports at the top of the file:
Following this, register AdminJSTypeorm adapter somewhere after your imports:
This will allow you to pass TypeORM models for AdminJS to load. If we use the Organization entity that we used as en example earlier, you should import it into app.module.ts and pass it into resources in your adminJsOptions:
// ... other imports
import * as AdminJSTypeorm from '@adminjs/typeorm'
import dataSource from './path/to/your/datasource.js'
import { Organization } from './organization.entity.js'
AdminJS.registerAdapter({
Resource: AdminJSTypeorm.Resource,
Database: AdminJSTypeorm.Database,
})
// ... other code
const start = async () => {
// Make sure you initialize the data source before you create your AdminJS instance
await dataSource.initialize()
const adminOptions = {
// We pass Organization to `resources`
resources: [Organization],
}
// Please note that some plugins don't need you to create AdminJS instance manually,
// instead you would just pass `adminOptions` into the plugin directly,
// an example would be "@adminjs/hapi"
const admin = new AdminJS(adminOptions)
// ... other code
}
start()
app.module.ts
import * as AdminJSTypeorm from '@adminjs/typeorm'
import AdminJS from 'adminjs'