migrate_db.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import pymysql
  2. db_host = "rm-f8ze60yirdj8786u2.mysql.rds.aliyuncs.com"
  3. db_user = "root"
  4. db_pass = "csqz@20255"
  5. db_name = "csqz-client"
  6. def migrate():
  7. conn = pymysql.connect(
  8. host=db_host,
  9. user=db_user,
  10. password=db_pass,
  11. db=db_name,
  12. port=3306,
  13. charset='utf8mb4',
  14. cursorclass=pymysql.cursors.DictCursor
  15. )
  16. try:
  17. with conn.cursor() as cursor:
  18. # 1. Update genealogy_records
  19. print("Checking genealogy_records columns...")
  20. cursor.execute("DESCRIBE genealogy_records")
  21. columns = [col['Field'] for col in cursor.fetchall()]
  22. if 'status' not in columns:
  23. print("Adding 'status' column to genealogy_records...")
  24. cursor.execute("ALTER TABLE genealogy_records ADD COLUMN status VARCHAR(20) DEFAULT 'pending'")
  25. if 'ai_content' not in columns:
  26. print("Adding 'ai_content' column to genealogy_records...")
  27. cursor.execute("ALTER TABLE genealogy_records ADD COLUMN ai_content MEDIUMTEXT")
  28. # 2. Update family_member_info
  29. print("Checking family_member_info columns...")
  30. cursor.execute("DESCRIBE family_member_info")
  31. member_columns = [col['Field'] for col in cursor.fetchall()]
  32. if 'source_record_id' not in member_columns:
  33. print("Adding 'source_record_id' column to family_member_info...")
  34. cursor.execute("ALTER TABLE family_member_info ADD COLUMN source_record_id INT")
  35. conn.commit()
  36. print("Migration complete.")
  37. except Exception as e:
  38. print(f"Migration failed: {e}")
  39. finally:
  40. conn.close()
  41. if __name__ == "__main__":
  42. migrate()