update_db_schema.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import pymysql
  2. import sys
  3. # 数据库配置
  4. DB_CONFIG = {
  5. "host": "m-f8ze60yirdj8786u2.mysql.rds.aliyuncs.com",
  6. "port": 3306,
  7. "user": "root",
  8. "password": "csqz@20255",
  9. "db": "csqz-client",
  10. "charset": "utf8mb4",
  11. "cursorclass": pymysql.cursors.DictCursor
  12. }
  13. def update_schema():
  14. conn = pymysql.connect(**DB_CONFIG)
  15. try:
  16. with conn.cursor() as cursor:
  17. # 1. Add family_rank (堂内排行)
  18. try:
  19. cursor.execute("ALTER TABLE family_member_info ADD COLUMN family_rank VARCHAR(50) DEFAULT NULL COMMENT '堂内排行'")
  20. print("Added column: family_rank")
  21. except pymysql.err.OperationalError as e:
  22. if e.args[0] != 1060: # Duplicate column name
  23. raise e
  24. print("Column family_rank already exists.")
  25. # 2. Add tags (标签)
  26. try:
  27. cursor.execute("ALTER TABLE family_member_info ADD COLUMN tags VARCHAR(255) DEFAULT NULL COMMENT '标签'")
  28. print("Added column: tags")
  29. except pymysql.err.OperationalError as e:
  30. if e.args[0] != 1060:
  31. raise e
  32. print("Column tags already exists.")
  33. # 3. Add notes (人员备注)
  34. try:
  35. cursor.execute("ALTER TABLE family_member_info ADD COLUMN notes TEXT DEFAULT NULL COMMENT '人员备注'")
  36. print("Added column: notes")
  37. except pymysql.err.OperationalError as e:
  38. if e.args[0] != 1060:
  39. raise e
  40. print("Column notes already exists.")
  41. conn.commit()
  42. print("Schema update completed successfully.")
  43. return True
  44. except Exception as e:
  45. print(f"Error updating schema: {e}")
  46. return False
  47. finally:
  48. conn.close()
  49. if __name__ == "__main__":
  50. if update_schema():
  51. sys.exit(0)
  52. else:
  53. sys.exit(1)