adminjs icon indicating copy to clipboard operation
adminjs copied to clipboard

[Bug]: mikro-orm deprecated type field

Open jengo opened this issue 7 months ago • 0 comments

Contact Details

No response

What happened?

List what you are trying to do?

I am trying to setup AdminJS with mikro-orm. Following the documentation I tried using:

const mikroOrmConfig: any =
{
	entities: [Event, Config],
	dbName: "dbname",
	user: "user",
	password: "****",
	type: 'postgresql',
	host: "db",
	port: 5432,
	debug: true,
	extensions: [SeedManager],
}

However, this results in the following error:

Error: The `type` option has been removed in v6, please fill in the `driver` option instead or use `defineConfig` helper (to define your ORM config) or `MikroORM` class (to call the `init` method) exported from the driver package (e.g. `import { defineConfig } from '@mikro-orm/mysql'; export default defineConfig({ ... })`).
    at Configuration.validateOptions (/app/node_modules/@mikro-orm/core/utils/Configuration.js:383:19)
    at new Configuration (/app/node_modules/@mikro-orm/core/utils/Configuration.js:152:18)
    at new MikroORM (/app/node_modules/@mikro-orm/core/MikroORM.js:98:27)
    at PostgreSqlMikroORM.init (/app/node_modules/@mikro-orm/core/MikroORM.js:44:21)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async initORM (file:///app/src/db.ts:10:17)
    at async Namespace.<anonymous> (file:///app/src/configs.ts:9:20)

When I try using the required field driver like:

const mikroOrmConfig: any =
{
	entities: [Event, Config],
	dbName: "dbname",
	user: "user",
	password: "****",
	driver: PostgreSqlDriver,
	host: "db",
	port: 5432,
	debug: true,
	extensions: [SeedManager],
}

this results in a different error of:

Unable to connect to the database: NoDatabaseAdapterError: There are no adapters supporting one of the database you provided
    at file:///app/node_modules/adminjs/lib/backend/utils/resources-factory/resources-factory.js:45:15
    at Array.reduce (<anonymous>)
    at ResourcesFactory._convertDatabases (file:///app/node_modules/adminjs/lib/backend/utils/resources-factory/resources-factory.js:42:22)
    at ResourcesFactory.buildResources (file:///app/node_modules/adminjs/lib/backend/utils/resources-factory/resources-factory.js:31:36)
    at new AdminJS (file:///app/node_modules/adminjs/lib/adminjs.js:79:39)
    at Server.<anonymous> (file:///app/src/server.ts:81:23)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5) {
  database: {
    orm: MikroORM {
      em: [EntityManager<1>],
      config: [Configuration],
      metadata: [MetadataStorage],
      driver: [PostgreSqlDriver],
      logger: [DefaultLogger],
      discovery: [MetadataDiscovery]
    },
    em: [EntityManager<1>],
    event: SqlEntityRepository { em: [EntityManager<1>], entityName: 'Event' }
  }
}

Bug prevalence

always

AdminJS dependencies version

"dependencies": {
	"@adminjs/express": "^6.1.1",
	"@adminjs/mikroorm": "^4.0.0",
	"@mikro-orm/cli": "^6.4.16",
	"@mikro-orm/core": "^6.4.16",
	"@mikro-orm/migrations": "^6.4.16",
	"@mikro-orm/postgresql": "^6.4.16",
	"@mikro-orm/reflection": "^6.4.16",
	"@mikro-orm/seeder": "^6.4.16",
	"@socket.io/admin-ui": "^0.5.1",
	"@socket.io/postgres-adapter": "^0.4.0",
	"@types/express": "^5.0.3",
	"@types/express-session": "^1.18.2",
	"@types/node": "^24.0.13",
	"@types/socket.io": "^3.0.2",
	"adminjs": "^7.8.16",
	"dotenv": "^17.2.0",
	"express": "^5.1.0",
	"express-formidable": "^1.2.0",
	"express-session": "^1.18.1",
	"ioredis": "^5.6.1",
	"knex": "^3.1.0",
	"nodemon": "^3.1.10",
	"objection": "^3.1.5",
	"pg": "^8.16.3",
	"redis": "^5.6.0",
	"reflect-metadata": "^0.2.2",
	"socket.io": "^4.8.1",
	"ts-node": "^10.9.2",
	"typescript": "^5.8.3",
	"unique-names-generator": "^4.7.1"
},

What browsers do you see the problem on?

No response

Relevant log output


Relevant code that's giving you issues


jengo avatar Aug 05 '25 03:08 jengo