UNPKG

knex-schema-inspector

Version:

Utility for extracting information about existing DB schema

38 lines (32 loc) 1.08 kB
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;