import sys,json from read_links import P,connect,encode plan=json.loads((P/'plan.json').read_text(encoding='utf8')) ids=[r['id'] for r in plan['unresolved']] tables=['crm_customer','mes_qc_oqc','mes_md_item','mdm_item','erp_product','erp_sale_order','erp_sale_order_items', 'mes_wm_product_sales','mes_wm_product_sales_line','mes_wm_batch','crm_contract','crm_contract_product', 'crm_sale_quotation','crm_sale_quotation_product','crm_business','crm_business_product'] c=connect(sys.stdin.readline().strip());s={'tables':{},'target_ids':ids} with c.cursor() as q: q.execute("SET time_zone='+08:00'");q.execute('SELECT DATABASE() db,NOW() now');s['state']=q.fetchone() q.execute('SELECT TABLE_NAME FROM information_schema.tables WHERE TABLE_SCHEMA=DATABASE()');available={r['TABLE_NAME'] for r in q.fetchall()} for t in tables: if t not in available:continue q.execute('SHOW COLUMNS FROM `'+t+'`');cols=q.fetchall() q.execute('SELECT * FROM `'+t+'` WHERE deleted=0 ORDER BY id');rows=q.fetchall() s['tables'][t]={'columns':cols,'rows':rows} if t in ('mdm_item','erp_product','crm_contract_product','crm_business_product'):print(t,len(rows),','.join(x['Field'] for x in cols)) (P/'oqc-context.json').write_text(encode(s),encoding='utf8');print('Target',len(ids),'State',encode(s['state']));c.close()