Exemplo n.º 1
0
 def __buildSchemaRSTFile(self, buildDirectory):
     print '    generating RST Schema file ',
     self.buildRstFile = os.path.join(buildDirectory,
                                      self.name + '.schema.generated.rst')
     rst = sqlrst.printer.blockSequenceToRst(self.blocks, indentSQL=1)
     filehelpers.saveContent(self.buildRstFile, rst)
     print ' ... done'
Exemplo n.º 2
0
 def build(self, buildDirectory):
     print '    CREATE VIEW %s ; ' % self.name,
     try:
         self.state.databaseEngine.execute(self.query.block.sqlText)
     except Exception as e:
         self._executionError(e)
     else:
         print 'SELECT * ',
         self._computeCSVAndOutputFileNames(buildDirectory)
         query = 'SELECT * FROM %s; ' % self.query.block.name
         try:
             result = self.state.databaseEngine.execute(query, self.csvFile)
         except Exception as e:
             self._executionError(e)
         else:
             try:
                 result = self.state.databaseEngine.execute(query)
             except:
                 # we don't care two much
                 self.rowNumber = 0
                 dbcase.warning('Cannot count results. Not really important in fact.')
                 saveContent(self.outFile,'unkown number of rows.')
             else:
                 self.rowNumber = len(list(result))
                 saveContent(self.outFile,'%s row(s)' % self.rowNumber)
                 print  ' %s rows. done' % self.rowNumber
Exemplo n.º 3
0
 def build(self, buildDirectory):
     print('    *VIEW* {:<48}**'.format(self.name), end=' ')
     try:
         self.state.databaseEngine.execute(self.query.block.sqlText)
     except Exception as e:
         self._executionError(e)
     else:
         self._computeCSVAndOutputFileNames(buildDirectory)
         query = 'SELECT * FROM %s; ' % self.query.block.name
         try:
             result = self.state.databaseEngine.execute(query, self.csvFile)
         except Exception as e:
             self._executionError(e)
         else:
             try:
                 result = self.state.databaseEngine.execute(query)
             except:
                 # we don't care two much
                 self.rowNumber = 0
                 dbcase.warning(
                     'Cannot count results. Not really important in fact.')
                 saveContent(self.outFile, 'unkown number of rows.')
             else:
                 self.rowNumber = len(list(result))
                 saveContent(self.outFile, '%s row(s)' % self.rowNumber)
                 print(' {:>5}'.format(self.rowNumber))
Exemplo n.º 4
0
 def __insertDatabaseContent():
     sql = self.getSQLInsertStatements()
     filename = '%s_%s.insert.sql' % (self.case.name, self.name)
     generated_content_file_name = os.path.join(
         self.stateBuildDirectory, filename)
     saveContent(generated_content_file_name, sql)
     self.databaseEngine.executeScript(generated_content_file_name)
Exemplo n.º 5
0
 def __saveSchemaFile(self, buildDirectory):
     if self.verbose:
         print('    saving SQL Schema file', end=' ')
     self.buildFilename = os.path.join(buildDirectory, self.name+'.schema.sql')
     saveContent(self.buildFilename, self.sqlRst)
     if self.verbose:
         print(' ... done')
Exemplo n.º 6
0
    def _buildRSTFile(self, buildDirectory):
        print '    generating RST QuerySet file',
        outFileName = self.name+'.generated.rst'
        self.buildRstFile = os.path.join(buildDirectory,outFileName)
        rst = sqlrst.printer.blockSequenceToRst(self.blocks, indentSQL=1)

        filehelpers.saveContent(self.buildRstFile, rst)
        print outFileName,
        print ' ... done'
Exemplo n.º 7
0
 def _executionError(self, e):
     self.error = e
     self.rowNumber = None
     self.csvFile = None
     message = (
         "ERROR in '%s/%s.queries.sql'.\nWhen evaluating %s for state '%s':\n\n%s"
         % (self.query.querySet.case.name, self.query.querySet.name,
            self.query.key, self.state.name, unicode(self.error))).replace(
                r'\n', '\n')
     sphinx_message = '\n..  error::\n\n%s\n\n' % dbcase.indent(1, message)
     saveContent(self.outFile, sphinx_message)
     dbcase.warning(message)
Exemplo n.º 8
0
 def _executionError(self, e):
     self.error = e
     self.rowNumber = None
     self.csvFile = None
     message = (
         "ERROR in '%s/%s.queries.sql'.\nWhen evaluating %s for state '%s':\n\n%s" % (
             self.query.querySet.case.name,
             self.query.querySet.name,
             self.query.key,
             self.state.name,
             unicode(self.error))).replace(r'\n','\n')
     sphinx_message = '\n..  error::\n\n%s\n\n' % dbcase.indent(1, message)
     saveContent(self.outFile, sphinx_message)
     dbcase.warning(message)
Exemplo n.º 9
0
    def _buildRSTFile(self, buildDirectory):
        """
        Generate RST query set file named ``*.generated.rst``
        :param buildDirectory (str): path to the str directory.
        :return: None
        """
        print '    generating RST QuerySet file',
        outFileName = self.name + '.generated.rst'
        self.buildRstFile = os.path.join(buildDirectory, outFileName)
        rst = sqlrst.printer.blockSequenceToRst(self.blocks, indentSQL=1)

        filehelpers.saveContent(self.buildRstFile, rst)
        print outFileName,
        print ' ... done'
Exemplo n.º 10
0
 def build(self,
           outputDirectory='schemaspy',
           options='-hq -noads -nologo',
           schemaSpyOutput='/dev/null'):
     filehelpers.ensureDirectory(outputDirectory)
     self.lastCommandOutputFile = os.path.join(outputDirectory,
                                               'schemaspy.out.txt')
     command = '%s -t %s -db %s -sso -o %s %s >>%s' % (
         self.schemaSpyCommand, SCHEMASPY_SQLITE_PROPERTY,
         self.dataBaseFile, outputDirectory, options,
         self.lastCommandOutputFile)
     filehelpers.saveContent(self.lastCommandOutputFile, command + '\n\n')
     self.lastExitCode = os.system(command)
     if self.lastExitCode != 0:
         raise ValueError(
             'SchemaSpy Error: exit code=%s. See %s for details' %
             (self.lastExitCode, self.lastCommandOutputFile))
Exemplo n.º 11
0
 def _buildQuerySetsIndexFile(self, subTitleCharacter='"'):
     index_filename = os.path.join(
             self.buildDirectory,
             '%s.queries.generated.rst' % self.name)
     index_content = ''
     for query_set in self.querySetMap.values():
         # add a subtitle if required
         if subTitleCharacter is not None:
             index_content += '%s\n%s\n\n' % (
                 query_set.name,
                 subTitleCharacter*len(query_set.name))
         # add an include
         index_content += (
             '..  include:: %s\n\n'% self._pathFromRootSphinxDirectory(query_set.buildRstFile)
         )
     print '    saving %s ... '  % index_filename
     saveContent(index_filename, index_content)
     print 'done'
Exemplo n.º 12
0
 def _buildQuerySetsIndexFile(self, subTitleCharacter='"'):
     index_filename = os.path.join(
             self.buildDirectory,
             '%s.queries.generated.rst' % self.name)
     index_content = ''
     for query_set in self.querySetMap.values():
         # add a subtitle if required
         if subTitleCharacter is not None:
             index_content += '%s\n%s\n\n' % (
                 query_set.name,
                 subTitleCharacter*len(query_set.name))
         # add an include
         index_content += (
             '..  include:: %s\n\n'% self._pathFromRootSphinxDirectory(query_set.buildRstFile)
         )
     print '    saving %s ... '  % index_filename
     saveContent(index_filename, index_content)
     print 'done'
Exemplo n.º 13
0
 def build(self, buildDirectory):
     print '    SELECT %s ... ' % self.name,
     self._computeCSVAndOutputFileNames(buildDirectory)
     query = self.query.block.sqlText
     try:
         result = self.state.databaseEngine.execute(query, self.csvFile)
     except Exception as e:
         self._executionError(e)
     else:
         try:
             result = self.state.databaseEngine.execute(query)
         except:
             # we don't care two much
             self.rowNumber = 0
             dbcase.warning(
                 'Cannot count results. Not really important in fact.')
             saveContent(self.outFile, 'unkown number of rows.')
         else:
             self.rowNumber = len(list(result))
             saveContent(self.outFile, '%s row(s)' % self.rowNumber)
         print ' %s rows. done' % self.rowNumber
Exemplo n.º 14
0
 def build(self,
           outputDirectory='schemaspy',
           options='-hq -noads -nologo',
           schemaSpyOutput='/dev/null'
     ):
     filehelpers.ensureDirectory(outputDirectory)
     self.lastCommandOutputFile = os.path.join(outputDirectory, 'schemaspy.out.txt')
     command = '%s -t %s -db %s -sso -o %s %s >>%s' % (
         self.schemaSpyCommand,
         SCHEMASPY_SQLITE_PROPERTY,
         self.dataBaseFile,
         outputDirectory,
         options,
         self.lastCommandOutputFile
         )
     filehelpers.saveContent(self.lastCommandOutputFile, command+'\n\n')
     self.lastExitCode = os.system(command)
     if self.lastExitCode != 0:
         raise ValueError(
                 'SchemaSpy Error: exit code=%s. See %s for details'
                 % (self.lastExitCode, self.lastCommandOutputFile))
Exemplo n.º 15
0
 def __saveSchemaFile(self, buildDirectory):
     print '    saving SQL Schema file',
     self.buildFilename = os.path.join(buildDirectory,
                                       self.name + '.schema.sql')
     saveContent(self.buildFilename, self.sqlRst)
     print ' ... done'
Exemplo n.º 16
0
 def __insertDatabaseContent():
     sql = self.getSQLInsertStatements()
     filename = '%s_%s.insert.sql' % (self.case.name, self.name)
     generated_content_file_name = os.path.join(self.stateBuildDirectory,filename)
     saveContent(generated_content_file_name, sql)
     self.databaseEngine.executeScript(generated_content_file_name)
Exemplo n.º 17
0
 def __saveSchemaFile(self, buildDirectory):
     print '    saving SQL Schema file',
     self.buildFilename = os.path.join(buildDirectory, self.name+'.schema.sql')
     saveContent(self.buildFilename, self.sqlRst)
     print ' ... done'
Exemplo n.º 18
0
 def __buildSchemaRSTFile(self, buildDirectory):
     print '    generating RST Schema file ',
     self.buildRstFile = os.path.join(buildDirectory, self.name+'.schema.generated.rst')
     rst = sqlrst.printer.blockSequenceToRst(self.blocks, indentSQL=1)
     filehelpers.saveContent(self.buildRstFile, rst)
     print ' ... done'