@@ -44,84 +44,85 @@ async function appStart () {
44
44
45
45
async function createDbConfigFromEnvironment ( ) {
46
46
return new Promise ( ( resolve , reject ) => {
47
- const envMysqlHost = process . env . DB_MYSQL_HOST || null ;
48
- const envMysqlPort = process . env . DB_MYSQL_PORT || null ;
49
- const envMysqlUser = process . env . DB_MYSQL_USER || null ;
50
- const envMysqlName = process . env . DB_MYSQL_NAME || null ;
51
- const envSqliteFile = process . env . DB_SQLITE_FILE || null ;
52
-
53
- if ( ( envMysqlHost && envMysqlPort && envMysqlUser && envMysqlName ) || envSqliteFile ) {
54
- const fs = require ( 'fs' ) ;
55
- const filename = ( process . env . NODE_CONFIG_DIR || './config' ) + '/' + ( process . env . NODE_ENV || 'default' ) + '.json' ;
56
- let configData = { } ;
57
-
58
- try {
59
- configData = require ( filename ) ;
60
- } catch ( err ) {
61
- // do nothing
62
- }
47
+ const envMysqlHost = process . env . DB_MYSQL_HOST || null ;
48
+ const envMysqlPort = process . env . DB_MYSQL_PORT || null ;
49
+ const envMysqlUser = process . env . DB_MYSQL_USER || null ;
50
+ const envMysqlName = process . env . DB_MYSQL_NAME || null ;
51
+ let envSqliteFile = process . env . DB_SQLITE_FILE || null ;
52
+
53
+ const fs = require ( 'fs' ) ;
54
+ const filename = ( process . env . NODE_CONFIG_DIR || './config' ) + '/' + ( process . env . NODE_ENV || 'default' ) + '.json' ;
55
+ let configData = { } ;
56
+
57
+ try {
58
+ configData = require ( filename ) ;
59
+ } catch ( err ) {
60
+ // do nothing
61
+ }
62
+
63
+ if ( configData . database && configData . database . engine && ! configData . database . fromEnv ) {
64
+ logger . info ( 'Manual db configuration already exists, skipping config creation from environment variables' ) ;
65
+ resolve ( ) ;
66
+ return ;
67
+ }
68
+
69
+ if ( ( ! envMysqlHost || ! envMysqlPort || ! envMysqlUser || ! envMysqlName ) && ! envSqliteFile ) {
70
+ envSqliteFile = '/data/database.sqlite' ;
71
+ logger . info ( `No valid environment variables for database provided, using default SQLite file '${ envSqliteFile } '` ) ;
72
+ }
63
73
64
- if ( configData . database && configData . database . engine && ! configData . database . fromEnv ) {
65
- logger . info ( 'Manual db configuration already exists, skipping config creation from environment variables' ) ;
74
+ if ( envMysqlHost && envMysqlPort && envMysqlUser && envMysqlName ) {
75
+ const newConfig = {
76
+ fromEnv : true ,
77
+ engine : 'mysql' ,
78
+ host : envMysqlHost ,
79
+ port : envMysqlPort ,
80
+ user : envMysqlUser ,
81
+ password : process . env . DB_MYSQL_PASSWORD ,
82
+ name : envMysqlName ,
83
+ } ;
84
+
85
+ if ( JSON . stringify ( configData . database ) === JSON . stringify ( newConfig ) ) {
86
+ // Config is unchanged, skip overwrite
66
87
resolve ( ) ;
67
88
return ;
68
89
}
69
90
70
- if ( envMysqlHost && envMysqlPort && envMysqlUser && envMysqlName ) {
71
- const newConfig = {
72
- fromEnv : true ,
73
- engine : 'mysql' ,
74
- host : envMysqlHost ,
75
- port : envMysqlPort ,
76
- user : envMysqlUser ,
77
- password : process . env . DB_MYSQL_PASSWORD ,
78
- name : envMysqlName ,
79
- } ;
80
-
81
- if ( JSON . stringify ( configData . database ) === JSON . stringify ( newConfig ) ) {
82
- // Config is unchanged, skip overwrite
83
- resolve ( ) ;
84
- return ;
85
- }
86
-
87
- logger . info ( 'Generating MySQL db configuration from environment variables' ) ;
88
- configData . database = newConfig ;
91
+ logger . info ( 'Generating MySQL knex configuration from environment variables' ) ;
92
+ configData . database = newConfig ;
89
93
90
- } else {
91
- const newConfig = {
92
- fromEnv : true ,
93
- engine : 'knex-native' ,
94
- knex : {
95
- client : 'sqlite3' ,
96
- connection : {
97
- filename : envSqliteFile
98
- } ,
99
- useNullAsDefault : true
100
- }
101
- } ;
102
- if ( JSON . stringify ( configData . database ) === JSON . stringify ( newConfig ) ) {
103
- // Config is unchanged, skip overwrite
104
- resolve ( ) ;
105
- return ;
94
+ } else {
95
+ const newConfig = {
96
+ fromEnv : true ,
97
+ engine : 'knex-native' ,
98
+ knex : {
99
+ client : 'sqlite3' ,
100
+ connection : {
101
+ filename : envSqliteFile
102
+ } ,
103
+ useNullAsDefault : true
106
104
}
107
-
108
- logger . info ( 'Generating Sqlite db configuration from environment variables' ) ;
109
- configData . database = newConfig ;
105
+ } ;
106
+ if ( JSON . stringify ( configData . database ) === JSON . stringify ( newConfig ) ) {
107
+ // Config is unchanged, skip overwrite
108
+ resolve ( ) ;
109
+ return ;
110
110
}
111
111
112
- // Write config
113
- fs . writeFile ( filename , JSON . stringify ( configData , null , 2 ) , ( err ) => {
114
- if ( err ) {
115
- logger . error ( 'Could not write db config to config file: ' + filename ) ;
116
- reject ( err ) ;
117
- } else {
118
- logger . info ( 'Wrote db configuration to config file: ' + filename ) ;
119
- resolve ( ) ;
120
- }
121
- } ) ;
122
- } else {
123
- resolve ( ) ;
112
+ logger . info ( 'Generating SQLite knex configuration' ) ;
113
+ configData . database = newConfig ;
124
114
}
115
+
116
+ // Write config
117
+ fs . writeFile ( filename , JSON . stringify ( configData , null , 2 ) , ( err ) => {
118
+ if ( err ) {
119
+ logger . error ( 'Could not write db config to config file: ' + filename ) ;
120
+ reject ( err ) ;
121
+ } else {
122
+ logger . debug ( 'Wrote db configuration to config file: ' + filename ) ;
123
+ resolve ( ) ;
124
+ }
125
+ } ) ;
125
126
} ) ;
126
127
}
127
128
0 commit comments