@wbce-d9/schema
Version:
Utility for extracting information about existing DB schema
40 lines (39 loc) • 1.46 kB
JavaScript
import MySQLSchemaInspector from './dialects/mysql.js';
import PostgresSchemaInspector from './dialects/postgres.js';
import CockroachDBSchemaInspector from './dialects/cockroachdb.js';
import SqliteSchemaInspector from './dialects/sqlite.js';
import OracleDBSchemaInspector from './dialects/oracledb.js';
import MSSQLSchemaInspector from './dialects/mssql.js';
export * from './types/column.js';
export * from './types/foreign-key.js';
export * from './types/table.js';
export * from './types/overview.js';
export * from './types/schema-inspector.js';
export const createInspector = (knex) => {
let constructor;
switch (knex.client.constructor.name) {
case 'Client_MySQL':
case 'Client_MySQL2':
constructor = MySQLSchemaInspector;
break;
case 'Client_PG':
constructor = PostgresSchemaInspector;
break;
case 'Client_CockroachDB':
constructor = CockroachDBSchemaInspector;
break;
case 'Client_SQLite3':
constructor = SqliteSchemaInspector;
break;
case 'Client_Oracledb':
case 'Client_Oracle':
constructor = OracleDBSchemaInspector;
break;
case 'Client_MSSQL':
constructor = MSSQLSchemaInspector;
break;
default:
throw Error('Unsupported driver used: ' + knex.client.constructor.name);
}
return new constructor(knex);
};