Advertisements
How can i retrieve a list of all the schemas of a mikro-orm.config.js DB Connection?
I tried
const publicOrm = await MikroORM.init(MikroOrmOptions);
const result = await publicOrm
.getSchemaGenerator()
.execute('select schema_name from information_schema.schemata;');
But ‘result’ always undefined
>Solution :
The execute
method on SchemaGenerator
does not return anything, as its meant for schema commands and not select queries. You can use execute
method on the driver or even use a QB:
const orm = await MikroORM.init(...);
const driver = orm.em.getDriver();
const result = driver.execute('select schema_name from information_schema.schemata');
Or even better, you can use SchemaHelper.getNamespaces()
method that will give you a list of existing schemas directly:
const orm = await MikroORM.init(...);
const platform = orm.em.getPlatform();
const result = await platform.getSchemaHelper()!.getNamespaces();
(this is what gets used in the schema generator database reflection, it will also automatically ignore system schemas prefixed with pg_
and crdb_
, and information schema)