1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| 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()
|
|