Misaka_Company 1f7191421a feat: access reader and value serialization
Add to_jsonable() (Access/pyodbc value -> JSON-safe) with strict TDD
(5 tests: datetime iso, bool preserved before int, decimal->str,
none/numbers, dict round-trip). bool branch precedes int because bool
is a subclass of int in Python.

Add AccessReader: reads TableChangeLog (read_log), reads a full source
row by RecordID via to_jsonable (read_row, warns on >4000-char values
that JSON_VALUE would truncate), and deletes processed log IDs in
chunked, retried batches (delete_log_ids, no-op on empty list).
Connects via the ACE ODBC driver from config.access.driver, shared
autocommit mode to coexist with the live .laccdb client.

Integration test against the real 氩弧焊.accdb (read-only; delete_log_ids
only exercised with []) passes.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-14 12:22:48 +08:00

ProductionDataBaseSync_DataMacro

Access → SQL Server 增量同步(数据宏驱动)。详见 docs/superpowers/specs/2026-07-14-access-datamacro-sync-design.md

运行

.venv/Scripts/python.exe -m sync.service

配置

编辑 config.yaml(从 config.example.yaml 复制并填入真实凭据)。

Description
Access to SQL Server incremental sync, data-macro driven
Readme 209 KiB
Languages
Python 83.8%
TSQL 16.1%
Batchfile 0.1%