def schema_list(self): pg_structure = PgStructure(self.args) schema_list = pg_structure.get_schema_list().items() pg_structure.close() return self.render('schema_list.html', { 'title': 'Schema list', 'schema_list': schema_list, })
def table_list(self, schema): pg_structure = PgStructure(self.args) table_list = pg_structure.get_table_list(schema).items() pg_structure.close() return self.render('table_list.html', { 'title': 'Table list', 'schema': schema, 'table_list': table_list, })
def column_list(self, schema, table): pg_structure = PgStructure(self.args) foreign_key_dict = pg_structure.get_foreign_key_dict(schema, table) column_list = [] for column in pg_structure.get_column_list(schema, table): column['foreign_key'] = self.render( 'foreign_key_link.html', foreign_key_dict[column['column']] ) if column['column'] in foreign_key_dict else None column_list.append(column) pg_structure.close() return self.render('column_list.html', { 'title': 'Column list', 'schema': schema, 'table': table, 'column_list': column_list, })
def load_autocomplete_items(self): pg_structure = PgStructure(self.args) SQL = ''' SELECT pg_tables.schemaname, pg_tables.tablename, pg_attribute.attname -- column name FROM pg_catalog.pg_tables LEFT JOIN pg_catalog.pg_class ON pg_class.relname = pg_tables.tablename LEFT JOIN pg_catalog.pg_attribute ON pg_attribute.attrelid = pg_class.oid WHERE pg_attribute.attnum > 0 AND NOT pg_attribute.attisdropped ORDER BY pg_attribute.attnum ''' pg_structure.cursor.execute(SQL) raw = pg_structure.cursor.fetchall() pg_structure.close() return [{ 'schema': schema, 'table': table, 'column': column, } for schema, table, column in raw]