MCPcopy
hub / github.com/directus/directus / getDatabase

Function getDatabase

api/src/database/index.ts:35–206  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

33export default getDatabase;
34
35export function getDatabase(): Knex {
36 if (database) {
37 return database;
38 }
39
40 const env = useEnv();
41 const logger = useLogger();
42 const metrics = useMetrics();
43
44 const {
45 client,
46 version,
47 searchPath,
48 connectionString,
49 pool: poolConfig = {},
50 ...connectionConfig
51 } = getConfigFromEnv('DB_', { omitPrefix: 'DB_EXCLUDE_TABLES' });
52
53 const requiredEnvVars = ['DB_CLIENT'];
54
55 switch (client) {
56 case 'sqlite3':
57 requiredEnvVars.push('DB_FILENAME');
58 break;
59
60 case 'oracledb':
61 if (!env['DB_CONNECT_STRING']) {
62 requiredEnvVars.push('DB_HOST', 'DB_PORT', 'DB_DATABASE', 'DB_USER', 'DB_PASSWORD');
63 } else {
64 requiredEnvVars.push('DB_USER', 'DB_PASSWORD', 'DB_CONNECT_STRING');
65 }
66
67 break;
68
69 case 'cockroachdb':
70 case 'pg':
71 if (!connectionString) {
72 requiredEnvVars.push('DB_HOST', 'DB_PORT', 'DB_DATABASE', 'DB_USER');
73 } else {
74 requiredEnvVars.push('DB_CONNECTION_STRING');
75 }
76
77 break;
78 case 'mysql':
79 if (!env['DB_SOCKET_PATH']) {
80 requiredEnvVars.push('DB_HOST', 'DB_PORT', 'DB_DATABASE', 'DB_USER', 'DB_PASSWORD');
81 } else {
82 requiredEnvVars.push('DB_DATABASE', 'DB_USER', 'DB_PASSWORD', 'DB_SOCKET_PATH');
83 }
84
85 break;
86 case 'mssql':
87 if (!env['DB_TYPE'] || env['DB_TYPE'] === 'default') {
88 requiredEnvVars.push('DB_HOST', 'DB_PORT', 'DB_DATABASE', 'DB_USER', 'DB_PASSWORD');
89 }
90
91 break;
92 default:

Callers 15

ensureDeploymentWebhooksFunction · 0.85
getDefaultContextMethod · 0.85
loadMethod · 0.85
handlerMethod · 0.85
executeFlowMethod · 0.85
executeOperationMethod · 0.85
registerAuthProvidersFunction · 0.85
createServerFunction · 0.85
onSignalFunction · 0.85
onShutdownFunction · 0.85
startServerFunction · 0.85
deployment.tsFile · 0.85

Calls 15

useEnvFunction · 0.90
isObjectFunction · 0.90
useLoggerFunction · 0.85
useMetricsFunction · 0.85
getConfigFromEnvFunction · 0.85
validateEnvFunction · 0.85
validateDatabaseCharsetFunction · 0.85
isArrayFunction · 0.85
executeMethod · 0.80
defaultMethod · 0.80
onMethod · 0.80
observeMethod · 0.80

Tested by

no test coverage detected