File size: 873 Bytes
52adb86
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
from sqlalchemy import create_engine , inspect
from langchain_core.documents import Document

def create_scheme(database_url : str) -> list[dict] :

    scheme_docs = []

    engine = create_engine(database_url)
    inspector = inspect(engine)

    tables = inspector.get_table_names()

    for table in tables :
        clean_table = table.replace("_" , " ")

        columns = inspector.get_columns(table)

        clean_columns = []

        for col in columns :
            clean_col = col['name'].replace("_" , " ")
            clean_columns.append(clean_col)
        
        doc = f"Table: {clean_table}.\nColumns: {', '.join(clean_columns)}"

        scheme_docs.append(
            Document(
                page_content=doc,
                metadata={
                    "table_name" : table
                }
            )
        )
    
    return scheme_docs