Files
directus/packages/schema/src/index.ts
Rijk van Zanten 1db99e0828 Cleanup schema inspector (#4404)
* Rely on knex-schema-inspector

* Update packages
2021-03-05 17:06:07 -05:00

35 lines
901 B
TypeScript

import { Knex } from 'knex';
import { SchemaInspector } from './types/schema';
interface SchemaInspectorConstructor {
new (knex: Knex): SchemaInspector;
}
export default function Schema(knex: Knex): SchemaInspector {
let constructor: SchemaInspectorConstructor;
switch (knex.client.constructor.name) {
case 'Client_MySQL':
constructor = require('./dialects/mysql').default;
break;
case 'Client_PG':
constructor = require('./dialects/postgres').default;
break;
case 'Client_SQLite3':
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);
}