This commit is contained in:
brusnitsyn
2026-06-10 16:53:03 +09:00
parent ff810e59bc
commit b5d1f61a82
9 changed files with 640 additions and 151 deletions

View File

@@ -24,6 +24,15 @@ def parse_args():
action="store_true",
help="Только показать, какие watermark будут записаны, без сохранения в PostgreSQL.",
)
parser.add_argument(
"--from-pg",
action="store_true",
help=(
"Определить watermark из уже реплицированных данных PostgreSQL: "
"для каждой таблицы загружает PK из PG и ищет соответствующие "
"x_DateTime/sequence в MSSQL Life_, не читая всю таблицу заново."
),
)
parser.add_argument(
"--json",
action="store_true",
@@ -39,11 +48,19 @@ def main():
args = parse_args()
config = Config()
migrator = DatabaseMigrator(config)
summary = migrator.backfill_watermarks(
table_names=args.tables,
overwrite=args.overwrite,
dry_run=args.dry_run,
)
if args.from_pg:
summary = migrator.backfill_state_from_pg(
table_names=args.tables,
overwrite=args.overwrite,
dry_run=args.dry_run,
)
else:
summary = migrator.backfill_watermarks(
table_names=args.tables,
overwrite=args.overwrite,
dry_run=args.dry_run,
)
if args.json:
print(json.dumps(summary, ensure_ascii=False, indent=2, default=str))