예제 #1
0
    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,
        })
예제 #2
0
    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,
        })
예제 #3
0
    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,
        })
예제 #4
0
    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]