code: def _initDatabase(self):
          
          queries = []
  
          if len(self.application.config["viper.mysql"]["init"]["scripts"]) > 0:
              for scriptFilePath in self.application.config["viper.mysql"]["init"]["scripts"]:
                  sqlFile = open(scriptFilePath, "r")
                  queriesInFile = self.extractFromSQLFile(sqlFile)
                  sqlFile.close()
  
                  queries.extend(queriesInFile)
  
          def failCallback(error):
              errorMessage = str(error)
              if isinstance(error, Failure):
                  errorMessage = error.getErrorMessage()
  
              self.log.error(
                  "[Viper.MySQL] _initDatabase() database error: {errorMessage}",
                  errorMessage=errorMessage
              )
  
          def runCallback(transaction, queries):
              try:
                  for query in queries:
                      transaction.execute(query)
              except Exception as e:
                  failCallback(e)
                  return
  
          interaction = self.runInteraction(runCallback, queries)
          interaction.addErrback(failCallback)
docs: Initializes the database structure based on application configuration.
  
          :return: <void>