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] |