- Added detailed logging functionality to init_full_sync.py and run_incremental_sync.py for better tracking of synchronization processes. - Updated configuration mappings in config.py to include additional Access database tables. - Improved error handling and user feedback in vbareplace.py, including the ability to refresh linked tables in Access. - Adjusted polling intervals and batch sizes for performance optimization.
329 lines
12 KiB
Python
329 lines
12 KiB
Python
# config.py
|
|
|
|
# ================= 数据库连接配置 =================
|
|
SQL_SERVER_CONN = {
|
|
'driver': '{ODBC Driver 18 for SQL Server}',
|
|
'server': '192.168.110.114',
|
|
'database': 'CompanyDB',
|
|
'uid': 'peng',
|
|
'pwd': 'Cqbld123456.'
|
|
}
|
|
|
|
# Access 驱动配置 (根据你的 Office 版本选择 mdb 或 accdb)
|
|
ACCESS_DRIVER = "{Microsoft Access Driver (*.mdb, *.accdb)}"
|
|
|
|
# ================= 日志表配置 =================
|
|
# 根据你提供的表结构配置列名
|
|
LOG_TABLE_CONFIG = {
|
|
'schema': 'dbo',
|
|
'table_name': 'TableChangeLog',
|
|
# 下面定义字段名,方便代码引用,防止硬编码
|
|
'col_log_id': 'LogID',
|
|
'col_table_name': 'TableName',
|
|
'col_record_id': 'RecordID',
|
|
'col_address': 'TableAddress', # 使用 TableAddress 作为文件路径来源
|
|
'col_synced': 'Synced'
|
|
}
|
|
|
|
# ================= 同步映射配置 (核心重构) =================
|
|
# 结构: { "Access文件绝对路径": { "Access表名": { SQL目标配置 } } }
|
|
# 这样即使不同文件有相同的表名,也能区分开
|
|
SYNC_MAPPING = {
|
|
# 第一个 Access 文件
|
|
r"\\192.168.110.114\生产进度表\2025年数据\生产合同数据.accdb": {
|
|
"26年压力表合同数据": {
|
|
"target_schema": "productionContractData",
|
|
"target_table": "26年压力表合同数据", # 映射到 A 表
|
|
"pk_col": "ID"
|
|
},
|
|
"26年温度计合同数据": {
|
|
"target_schema": "productionContractData",
|
|
"target_table": "26年温度计合同数据",
|
|
"pk_col": "ID"
|
|
},
|
|
"25年压力表合同数据": {
|
|
"target_schema": "productionContractData",
|
|
"target_table": "25年压力表合同数据",
|
|
"pk_col": "ID"
|
|
},
|
|
"25年温度计合同数据": {
|
|
"target_schema": "productionContractData",
|
|
"target_table": "25年温度计合同数据",
|
|
"pk_col": "ID"
|
|
}
|
|
|
|
},
|
|
r"\\192.168.110.114\生产进度表\2026年数据\成品入库.accdb": {
|
|
"成品交检记录": {
|
|
"target_schema": "productWarehousing",
|
|
"target_table": "成品交检记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"成品入库记录": {
|
|
"target_schema": "productWarehousing",
|
|
"target_table": "成品入库记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
}
|
|
},
|
|
r"\\192.168.110.114\生产进度表\2026年数据\一车间.accdb": {
|
|
"一车间记录": {
|
|
"target_schema": "workshopOne",
|
|
"target_table": "一车间记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
}
|
|
},
|
|
r"\\192.168.110.114\生产进度表\2026年数据\二车间.accdb": {
|
|
"二车间记录": {
|
|
"target_schema": "workshopTwo",
|
|
"target_table": "二车间记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
}
|
|
},
|
|
r"\\192.168.110.114\生产进度表\2026年数据\三车间.accdb": {
|
|
"三车间记录": {
|
|
"target_schema": "workshopThree",
|
|
"target_table": "三车间记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"温度计调校记录": {
|
|
"target_schema": "workshopThree",
|
|
"target_table": "温度计调校记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
}
|
|
},
|
|
r"\\192.168.110.114\生产进度表\2026年数据\机加工.accdb": {
|
|
"隔膜机加接收": {
|
|
"target_schema": "machining",
|
|
"target_table": "隔膜机加接收_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"膜片焊接": {
|
|
"target_schema": "machining",
|
|
"target_table": "膜片焊接_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"膜片接收": {
|
|
"target_schema": "machining",
|
|
"target_table": "膜片接收_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"喷涂寄出": {
|
|
"target_schema": "machining",
|
|
"target_table": "喷涂寄出_YEAR2026",
|
|
"pk_col": "ID"
|
|
}
|
|
},
|
|
r"\\192.168.110.114\生产进度表\2026年数据\计划.accdb": {
|
|
"报警器接单记录": {
|
|
"target_schema": "contractPlanning",
|
|
"target_table": "报警器接单记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"二车间接单记录": {
|
|
"target_schema": "contractPlanning",
|
|
"target_table": "二车间接单记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"隔膜接单记录": {
|
|
"target_schema": "contractPlanning",
|
|
"target_table": "隔膜接单记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"过压保护器接单记录": {
|
|
"target_schema": "contractPlanning",
|
|
"target_table": "过压保护器接单记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"精密表部件接收记录": {
|
|
"target_schema": "contractPlanning",
|
|
"target_table": "精密表部件接收记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"精密表接单记录": {
|
|
"target_schema": "contractPlanning",
|
|
"target_table": "精密表接单记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"库房接单记录": {
|
|
"target_schema": "contractPlanning",
|
|
"target_table": "库房接单记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"软管接单记录": {
|
|
"target_schema": "contractPlanning",
|
|
"target_table": "软管接单记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"氩弧焊接单记录": {
|
|
"target_schema": "contractPlanning",
|
|
"target_table": "氩弧焊接单记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"一车间接单记录": {
|
|
"target_schema": "contractPlanning",
|
|
"target_table": "一车间接单记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"阻尼器接单记录": {
|
|
"target_schema": "contractPlanning",
|
|
"target_table": "阻尼器接单记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
}
|
|
},
|
|
r"\\192.168.110.114\生产进度表\2026年数据\检验记录数据库.accdb": {
|
|
"检验合格记录表": {
|
|
"target_schema": "inspectionRecords",
|
|
"target_table": "检验合格记录表_YEAR2026",
|
|
"pk_col": "ID"
|
|
}
|
|
},
|
|
r"\\192.168.110.114\生产进度表\2026年数据\零件库.accdb": {
|
|
"表盘缺件记录": {
|
|
"target_schema": "partsWarehouse",
|
|
"target_table": "表盘缺件记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"表盘入库记录": {
|
|
"target_schema": "partsWarehouse",
|
|
"target_table": "表盘入库记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"部件发放记录": {
|
|
"target_schema": "partsWarehouse",
|
|
"target_table": "部件发放记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"出库单发出记录": {
|
|
"target_schema": "partsWarehouse",
|
|
"target_table": "出库单发出记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"出库单记录": {
|
|
"target_schema": "partsWarehouse",
|
|
"target_table": "出库单记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"法兰缺件记录": {
|
|
"target_schema": "partsWarehouse",
|
|
"target_table": "法兰缺件记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"法兰入库记录": {
|
|
"target_schema": "partsWarehouse",
|
|
"target_table": "法兰入库记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"卡到库房记录": {
|
|
"target_schema": "partsWarehouse",
|
|
"target_table": "卡到库房记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"喷涂到厂": {
|
|
"target_schema": "partsWarehouse",
|
|
"target_table": "喷涂到厂_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"缺件记录": {
|
|
"target_schema": "partsWarehouse",
|
|
"target_table": "缺件记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"温度计法兰缺件记录": {
|
|
"target_schema": "partsWarehouse",
|
|
"target_table": "温度计法兰缺件记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"温度计法兰入库记录": {
|
|
"target_schema": "partsWarehouse",
|
|
"target_table": "温度计法兰入库记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
}
|
|
},
|
|
r"\\192.168.110.114\生产进度表\2026年数据\温度计记录.accdb": {
|
|
"采 技 机记录": {
|
|
"target_schema": "thermometerRecord",
|
|
"target_table": "采 技 机记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"温度计调校记录": {
|
|
"target_schema": "thermometerRecord",
|
|
"target_table": "温度计调校记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"温度计检验记录": {
|
|
"target_schema": "thermometerRecord",
|
|
"target_table": "温度计检验记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"温度计组装记录": {
|
|
"target_schema": "thermometerRecord",
|
|
"target_table": "温度计组装记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
}
|
|
},
|
|
r"\\192.168.110.114\生产进度表\2026年数据\锡焊数据.accdb": {
|
|
"操作者1完成记录": {
|
|
"target_schema": "solderingData",
|
|
"target_table": "操作者1完成记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"操作者2完成记录": {
|
|
"target_schema": "solderingData",
|
|
"target_table": "操作者2完成记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"零件到车间记录": {
|
|
"target_schema": "solderingData",
|
|
"target_table": "零件到车间记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
}
|
|
},
|
|
r"\\192.168.110.114\生产进度表\2026年数据\氩弧焊.accdb": {
|
|
"表壳焊接记录": {
|
|
"target_schema": "TIGWelding",
|
|
"target_table": "表壳焊接记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"超压": {
|
|
"target_schema": "TIGWelding",
|
|
"target_table": "超压_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"氦测": {
|
|
"target_schema": "TIGWelding",
|
|
"target_table": "氦测_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"接收": {
|
|
"target_schema": "TIGWelding",
|
|
"target_table": "接收_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"退火": {
|
|
"target_schema": "TIGWelding",
|
|
"target_table": "退火_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"氩弧焊记录": {
|
|
"target_schema": "TIGWelding",
|
|
"target_table": "氩弧焊记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
},
|
|
"氩弧焊领料": {
|
|
"target_schema": "TIGWelding",
|
|
"target_table": "氩弧焊领料_YEAR2026",
|
|
"pk_col": "ID"
|
|
}
|
|
},
|
|
r"\\192.168.110.114\生产进度表\2026年数据\执行卡下发记录.accdb": {
|
|
"执行卡下发记录": {
|
|
"target_schema": "executionCardIssuanceRecord",
|
|
"target_table": "执行卡下发记录_YEAR2026",
|
|
"pk_col": "ID"
|
|
}
|
|
}
|
|
}
|
|
|
|
# ================= 运行参数 =================
|
|
POLL_INTERVAL = 5 # 轮询间隔(秒)
|
|
BATCH_SIZE = 10000 # 批量处理大小 |