server/sources/native.py
changeset 10196 20d56b1f035e
parent 10183 ff93dad2ae3a
child 10197 7c732d2abbc1
equal deleted inserted replaced
10186:bc1f5faad60b 10196:20d56b1f035e
  1584             self.logger.info('writing metadata')
  1584             self.logger.info('writing metadata')
  1585             self.write_metadata(archive)
  1585             self.write_metadata(archive)
  1586             for seq in self.get_sequences():
  1586             for seq in self.get_sequences():
  1587                 self.logger.info('processing sequence %s', seq)
  1587                 self.logger.info('processing sequence %s', seq)
  1588                 self.write_sequence(archive, seq)
  1588                 self.write_sequence(archive, seq)
       
  1589             for numrange in self.get_numranges():
       
  1590                 self.logger.info('processing numrange %s', numrange)
       
  1591                 self.write_numrange(archive, numrange)
  1589             for table in self.get_tables():
  1592             for table in self.get_tables():
  1590                 self.logger.info('processing table %s', table)
  1593                 self.logger.info('processing table %s', table)
  1591                 self.write_table(archive, table)
  1594                 self.write_table(archive, table)
  1592         finally:
  1595         finally:
  1593             archive.close()
  1596             archive.close()
  1614                 continue
  1617                 continue
  1615             relation_tables.append('%s_relation' % rtype)
  1618             relation_tables.append('%s_relation' % rtype)
  1616         return non_entity_tables + etype_tables + relation_tables
  1619         return non_entity_tables + etype_tables + relation_tables
  1617 
  1620 
  1618     def get_sequences(self):
  1621     def get_sequences(self):
       
  1622         return []
       
  1623 
       
  1624     def get_numranges(self):
  1619         return ['entities_id_seq']
  1625         return ['entities_id_seq']
  1620 
  1626 
  1621     def write_metadata(self, archive):
  1627     def write_metadata(self, archive):
  1622         archive.writestr('format.txt', '1.0')
  1628         archive.writestr('format.txt', '1.1')
  1623         archive.writestr('tables.txt', '\n'.join(self.get_tables()))
  1629         archive.writestr('tables.txt', '\n'.join(self.get_tables()))
  1624         archive.writestr('sequences.txt', '\n'.join(self.get_sequences()))
  1630         archive.writestr('sequences.txt', '\n'.join(self.get_sequences()))
       
  1631         archive.writestr('numranges.txt', '\n'.join(self.get_numranges()))
  1625         versions = self._get_versions()
  1632         versions = self._get_versions()
  1626         versions_str = '\n'.join('%s %s' % (k, v)
  1633         versions_str = '\n'.join('%s %s' % (k, v)
  1627                                  for k, v in versions)
  1634                                  for k, v in versions)
  1628         archive.writestr('versions.txt', versions_str)
  1635         archive.writestr('versions.txt', versions_str)
  1629 
  1636 
  1631         sql = self.dbhelper.sql_sequence_current_state(seq)
  1638         sql = self.dbhelper.sql_sequence_current_state(seq)
  1632         columns, rows_iterator = self._get_cols_and_rows(sql)
  1639         columns, rows_iterator = self._get_cols_and_rows(sql)
  1633         rows = list(rows_iterator)
  1640         rows = list(rows_iterator)
  1634         serialized = self._serialize(seq, columns, rows)
  1641         serialized = self._serialize(seq, columns, rows)
  1635         archive.writestr('sequences/%s' % seq, serialized)
  1642         archive.writestr('sequences/%s' % seq, serialized)
       
  1643 
       
  1644     def write_numrange(self, archive, numrange):
       
  1645         sql = self.dbhelper.sql_numrange_current_state(numrange)
       
  1646         columns, rows_iterator = self._get_cols_and_rows(sql)
       
  1647         rows = list(rows_iterator)
       
  1648         serialized = self._serialize(numrange, columns, rows)
       
  1649         archive.writestr('numrange/%s' % numrange, serialized)
  1636 
  1650 
  1637     def write_table(self, archive, table):
  1651     def write_table(self, archive, table):
  1638         nb_lines_sql = 'SELECT COUNT(*) FROM %s' % table
  1652         nb_lines_sql = 'SELECT COUNT(*) FROM %s' % table
  1639         self.cursor.execute(nb_lines_sql)
  1653         self.cursor.execute(nb_lines_sql)
  1640         rowcount = self.cursor.fetchone()[0]
  1654         rowcount = self.cursor.fetchone()[0]