# -*- coding: utf-8 -*- """只读:9197 的 userStory 引用及 zt_story_user 相关行在两库的差异。""" import io, sys, pymysql sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') SRC = dict(host='192.168.3.200', user='root', password='PX4fTAAsJ#T!1', database='zentao_dev', charset='utf8mb4', connect_timeout=15) DST = dict(host='192.168.1.161', user='devgps', password='dev@2021GPS', database='zentao_dev_2026', charset='utf8mb4', connect_timeout=15) SID = 9197 src = pymysql.connect(**SRC); scur = src.cursor() dst = pymysql.connect(**DST); dcur = dst.cursor() scur.execute('SELECT user_story FROM zt_story WHERE id=%s', (SID,)) us_id = scur.fetchone()[0] print(f'200: zt_story 9197.user_story = {us_id}') dcur.execute('SELECT user_story FROM zt_story WHERE id=%s', (SID,)) print(f'161_2026: zt_story 9197.user_story = {dcur.fetchone()[0]}') if us_id: for label, cur in [('200', scur), ('161_2026', dcur)]: cur.execute('SELECT id, product, project, parent, LEFT(title,40), status, deleted FROM zt_story_user WHERE id=%s', (us_id,)) print(f'{label} zt_story_user {us_id}:', cur.fetchone()) cur.execute('SELECT story, version, LEFT(title,40), LENGTH(spec) FROM zt_story_userspec WHERE story=%s', (us_id,)) print(f'{label} zt_story_userspec(story={us_id}):', cur.fetchall()) cur.execute('SELECT COUNT(*) FROM zt_story_user_task WHERE user_story_id=%s', (us_id,)) print(f'{label} zt_story_user_task(user_story_id={us_id}):', cur.fetchone()[0], '行') # 该用户需求是否还关联其他研发需求(判断要不要一并带) cur.execute('SELECT COUNT(*) FROM zt_story WHERE user_story=%s AND deleted="0"', (us_id,)) print(f'{label} 引用该用户需求的研发需求数:', cur.fetchone()[0]) src.close(); dst.close() print('done')