knex-schema-inspector
Version:
Utility for extracting information about existing DB schema
38 lines (32 loc) • 1.08 kB
text/typescript
import { Knex } from 'knex';
import { SchemaInspectorConstructor } from './types/schema-inspector';
export function SchemaInspector(knex: Knex) {
let constructor: SchemaInspectorConstructor;
switch (knex.client.constructor.name) {
case 'Client_MySQL':
case 'Client_MySQL2':
constructor = require('./dialects/mysql').default;
break;
case 'Client_PG':
constructor = require('./dialects/postgres').default;
break;
case 'Client_CockroachDB':
constructor = require('./dialects/cockroachdb').default;
break;
case 'Client_SQLite3':
case 'Client_BetterSQLite3':
constructor = require('./dialects/sqlite').default;
break;
case 'Client_Oracledb':
case 'Client_Oracle':
constructor = require('./dialects/oracledb').default;
break;
case 'Client_MSSQL':
constructor = require('./dialects/mssql').default;
break;
default:
throw Error('Unsupported driver used: ' + knex.client.constructor.name);
}
return new constructor(knex);
}
export default SchemaInspector;