11import type { DatabaseConfig } from '@stacksjs/types'
2- import { env } from '@stacksjs/env'
32import type { SupportedDialect } from 'bun-query-builder'
3+
4+ // Use direct environment variable access to avoid circular dependencies
5+ const envVars = typeof Bun !== 'undefined' ? Bun . env : process . env
46/**
57 * **Database Configuration**
68 *
@@ -9,37 +11,37 @@ import type { SupportedDialect } from 'bun-query-builder'
911 * you have any questions, feel free to reach out via Discord or GitHub Discussions.
1012 */
1113export default {
12- default : env . DB_CONNECTION as SupportedDialect || 'postgres' ,
14+ default : envVars . DB_CONNECTION as SupportedDialect || 'postgres' ,
1315
1416 connections : {
1517 sqlite : {
16- database : env . DB_DATABASE || 'stacks' ,
18+ database : envVars . DB_DATABASE || 'stacks' ,
1719 prefix : '' ,
1820 } ,
1921
2022 dynamodb : {
21- key : env . AWS_ACCESS_KEY_ID || '' ,
22- secret : env . AWS_SECRET_ACCESS_KEY || '' ,
23- region : env . AWS_DEFAULT_REGION || 'us-east-1' ,
24- prefix : env . DB_DATABASE || 'stacks' ,
25- endpoint : env . DB_PORT ? `http://localhost:${ env . DB_PORT } ` : 'http://localhost:8000' ,
23+ key : envVars . AWS_ACCESS_KEY_ID || '' ,
24+ secret : envVars . AWS_SECRET_ACCESS_KEY || '' ,
25+ region : envVars . AWS_DEFAULT_REGION || 'us-east-1' ,
26+ prefix : envVars . DB_DATABASE || 'stacks' ,
27+ endpoint : envVars . DB_PORT ? `http://localhost:${ envVars . DB_PORT } ` : 'http://localhost:8000' ,
2628 } ,
2729
2830 mysql : {
29- name : env . DB_DATABASE || 'stacks' ,
30- host : env . DB_HOST || '127.0.0.1' ,
31- port : Number ( env . DB_PORT ) || 3306 ,
32- username : env . DB_USERNAME || 'root' ,
33- password : env . DB_PASSWORD || '' ,
31+ name : envVars . DB_DATABASE || 'stacks' ,
32+ host : envVars . DB_HOST || '127.0.0.1' ,
33+ port : Number ( envVars . DB_PORT ) || 3306 ,
34+ username : envVars . DB_USERNAME || 'root' ,
35+ password : envVars . DB_PASSWORD || '' ,
3436 prefix : '' ,
3537 } ,
3638
3739 postgres : {
38- name : env . DB_DATABASE || 'stacks' ,
39- host : env . DB_HOST || '127.0.0.1' ,
40- port : Number ( env . DB_PORT ) || 3306 ,
41- username : env . DB_USERNAME || '' ,
42- password : env . DB_PASSWORD || '' ,
40+ name : envVars . DB_DATABASE || 'stacks' ,
41+ host : envVars . DB_HOST || '127.0.0.1' ,
42+ port : Number ( envVars . DB_PORT ) || 3306 ,
43+ username : envVars . DB_USERNAME || '' ,
44+ password : envVars . DB_PASSWORD || '' ,
4345 prefix : '' ,
4446 } ,
4547 } ,
@@ -56,22 +58,22 @@ export default {
5658 /**
5759 * Enable query logging to database
5860 */
59- enabled : env . DB_QUERY_LOGGING_ENABLED === 'true' || true ,
61+ enabled : envVars . DB_QUERY_LOGGING_ENABLED === 'true' || true ,
6062
6163 /**
6264 * The threshold in milliseconds to mark a query as slow
6365 */
64- slowThreshold : Number ( env . DB_QUERY_LOGGING_SLOW_THRESHOLD || 100 ) ,
66+ slowThreshold : Number ( envVars . DB_QUERY_LOGGING_SLOW_THRESHOLD || 100 ) ,
6567
6668 /**
6769 * How many days to keep query logs
6870 */
69- retention : Number ( env . DB_QUERY_LOGGING_RETENTION_DAYS || 7 ) ,
71+ retention : Number ( envVars . DB_QUERY_LOGGING_RETENTION_DAYS || 7 ) ,
7072
7173 /**
7274 * How often to run the pruning job in hours
7375 */
74- pruneFrequency : Number ( env . DB_QUERY_LOGGING_PRUNE_FREQUENCY || 24 ) ,
76+ pruneFrequency : Number ( envVars . DB_QUERY_LOGGING_PRUNE_FREQUENCY || 24 ) ,
7577
7678 /**
7779 * Patterns to exclude from logging
@@ -88,22 +90,22 @@ export default {
8890 /**
8991 * Enable detailed query analysis
9092 */
91- enabled : env . DB_QUERY_LOGGING_ANALYSIS_ENABLED === 'true' || true ,
93+ enabled : envVars . DB_QUERY_LOGGING_ANALYSIS_ENABLED === 'true' || true ,
9294
9395 /**
9496 * Analyze all queries, not just slow ones
9597 */
96- analyzeAll : env . DB_QUERY_LOGGING_ANALYZE_ALL === 'true' || false ,
98+ analyzeAll : envVars . DB_QUERY_LOGGING_ANALYZE_ALL === 'true' || false ,
9799
98100 /**
99101 * Collect EXPLAIN plans for SELECT queries
100102 */
101- explainPlan : env . DB_QUERY_LOGGING_EXPLAIN_PLAN === 'true' || true ,
103+ explainPlan : envVars . DB_QUERY_LOGGING_EXPLAIN_PLAN === 'true' || true ,
102104
103105 /**
104106 * Generate optimization suggestions
105107 */
106- suggestions : env . DB_QUERY_LOGGING_SUGGESTIONS === 'true' || true ,
108+ suggestions : envVars . DB_QUERY_LOGGING_SUGGESTIONS === 'true' || true ,
107109 } ,
108110 } ,
109111} satisfies DatabaseConfig
0 commit comments