Print difference report
(db_name, diff)
| 99 | } |
| 100 | |
| 101 | def print_diff(db_name, diff): |
| 102 | """Print difference report""" |
| 103 | print(f"--- {db_name} Database Structure Difference Report ---") |
| 104 | if not any(diff.values()): |
| 105 | print("Database structure matches ORM model, no synchronization needed.") |
| 106 | return |
| 107 | |
| 108 | if diff.get("added_tables"): |
| 109 | print("\n[+] Added tables:") |
| 110 | for table in diff["added_tables"]: |
| 111 | print(f" - {table}") |
| 112 | |
| 113 | if diff.get("deleted_tables"): |
| 114 | print("\n[-] Deleted tables:") |
| 115 | for table in diff["deleted_tables"]: |
| 116 | print(f" - {table}") |
| 117 | |
| 118 | if diff.get("changed_tables"): |
| 119 | print("\n[*] Changed tables:") |
| 120 | for table, changes in diff["changed_tables"].items(): |
| 121 | print(f" - {table}:") |
| 122 | if changes.get("added"): |
| 123 | print(" [+] Added fields:", ", ".join(changes["added"])) |
| 124 | if changes.get("deleted"): |
| 125 | print(" [-] Deleted fields:", ", ".join(changes["deleted"])) |
| 126 | if changes.get("modified"): |
| 127 | print(" [*] Modified fields:") |
| 128 | for col, types in changes["modified"].items(): |
| 129 | print(f" - {col}: {types[0]} -> {types[1]}") |
| 130 | print("--- End of Report ---") |
| 131 | |
| 132 | |
| 133 | def sync_database(engine, diff): |