|  | @@ -108,6 +108,7 @@ module.exports = {
 | 
	
		
			
				|  |  |      const models = autoload(path.join(WIKI.SERVERPATH, 'models'))
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      // Set init tasks
 | 
	
		
			
				|  |  | +    let conAttempts = 0
 | 
	
		
			
				|  |  |      let initTasks = {
 | 
	
		
			
				|  |  |        // -> Migrate DB Schemas
 | 
	
		
			
				|  |  |        async syncSchemas() {
 | 
	
	
		
			
				|  | @@ -115,10 +116,28 @@ module.exports = {
 | 
	
		
			
				|  |  |            tableName: 'migrations',
 | 
	
		
			
				|  |  |            migrationSource
 | 
	
		
			
				|  |  |          })
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      // -> Attempt initial connection
 | 
	
		
			
				|  |  | +      async connect() {
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  | +          WIKI.logger.info('Connecting to database...')
 | 
	
		
			
				|  |  | +          await self.knex.raw('SELECT 1 + 1;')
 | 
	
		
			
				|  |  | +          WIKI.logger.info('Database Connection Successful [ OK ]')
 | 
	
		
			
				|  |  | +        } catch (err) {
 | 
	
		
			
				|  |  | +          if (conAttempts < 10) {
 | 
	
		
			
				|  |  | +            WIKI.logger.error(`Database Connection Error: ${err.code} ${err.address}:${err.port}`)
 | 
	
		
			
				|  |  | +            WIKI.logger.warn(`Will retry in 3 seconds... [Attempt ${++conAttempts} of 10]`)
 | 
	
		
			
				|  |  | +            await new Promise(resolve => setTimeout(resolve, 3000))
 | 
	
		
			
				|  |  | +            await initTasks.connect()
 | 
	
		
			
				|  |  | +          } else {
 | 
	
		
			
				|  |  | +            throw err
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |        }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      let initTasksQueue = (WIKI.IS_MASTER) ? [
 | 
	
		
			
				|  |  | +      initTasks.connect,
 | 
	
		
			
				|  |  |        initTasks.syncSchemas
 | 
	
		
			
				|  |  |      ] : [
 | 
	
		
			
				|  |  |        () => { return Promise.resolve() }
 |