(db_obj, table_name, field_definitions)
| 18 | print(f"创建表时出错:{e}") |
| 19 | |
| 20 | def check_and_add_missing_fields(db_obj, table_name, field_definitions): |
| 21 | cursor = db_obj.cursor() |
| 22 | # 检查现有字段 |
| 23 | cursor.execute(f"PRAGMA table_info({table_name})") |
| 24 | existing_columns = {row[1]: row for row in cursor.fetchall()} |
| 25 | |
| 26 | for field_def in field_definitions: |
| 27 | if isinstance(field_def, list) and len(field_def) > 2: |
| 28 | field_name, field_type = field_def[1], field_def[2] |
| 29 | if field_name not in existing_columns: |
| 30 | try: |
| 31 | cursor.execute(f"ALTER TABLE {table_name} ADD COLUMN {field_name} {field_type}") |
| 32 | db_obj.commit() |
| 33 | print(f"【添加字段】表 '{table_name}' 中缺少字段 '{field_name}',已成功添加。") |
| 34 | except sqlite3.OperationalError as e: |
| 35 | print(f"【错误】尝试向表 '{table_name}' 添加字段 '{field_name}' 时出错: {e}") |
| 36 | |
| 37 | def update_database_for_table(db_name, table_name): |
| 38 | db_json = get_database_json() |
no test coverage detected