File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -155,6 +155,17 @@ def get_table_info(db_file, table_name):
155155 'fields' : fields ,
156156 'has_id' : has_id_column
157157 }
158+ def get_foreign_keys (db_file , table_name ):
159+ conn = sqlite3 .connect (db_file )
160+ cursor = conn .cursor ()
161+ cursor .execute (f"PRAGMA foreign_key_list({ table_name } )" )
162+ fks = cursor .fetchall ()
163+ conn .close ()
164+ # Return a list of dicts for clarity
165+ return [
166+ {"from" : fk [3 ], "to_table" : fk [2 ], "to_column" : fk [4 ]}
167+ for fk in fks
168+ ]
158169
159170
160171
@@ -362,6 +373,9 @@ def my_database_procedure(db_info):
362373 col_name = col ['col_name' ]
363374 col_type = col ['col_type' ]
364375 pk = col ['pk' ]
376+
377+ foreign_keys = get_foreign_keys (db_path , table_name )
378+ fk_map = {fk ['from' ]: fk for fk in foreign_keys }
365379
366380 f_field_name = sanitize_field_name (to_camel_case (col_name ))
367381 f_name = to_caption (col_name )
You can’t perform that action at this time.
0 commit comments