{ "generated_at": "2026-08-04T21:30:58Z", "mode": "dry-run", "domains": "all", "company_filter": [ "97e1a309-3d23-4aa2-b518-8e8d7afdfec7" ], "resume": false, "counts": { "admin_users": 1, "attributes": 303, "categories": 119, "category_attributes": 307, "companies": 1, "company_plans": 1, "company_plans_skipped": 4, "company_settings": 1, "credit_balances": 1, "credit_balances_skipped": 7, "custom_variables": 3, "export_feeds": 2, "feed_mappings": 11, "field_groups": 1, "input_feeds": 12, "memberships": 5, "plans": 5, "processed_products": 4378, "raw_products": 29115, "raw_products_gtin_deduped": 27017, "set_password_hooks_skipped_dry_run": 1, "standard_fields": 22, "usage_metrics": 1, "users": 27, "woocommerce_configs": 0 }, "validation": { "mode": "dry-run", "counts": [ { "entity": "companies", "mysql": 31, "postgres": -1, "delta": 0 }, { "entity": "profiles", "mysql": 27, "postgres": -1, "delta": 0, "note": "profiles → memberships" }, { "entity": "users", "mysql": -1, "postgres": -1, "delta": 0, "note": "no password_hash imported mysql_missing" }, { "entity": "admin_users", "mysql": 1, "postgres": -1, "delta": 0, "note": "folded into users.is_platform_admin" }, { "entity": "plans", "mysql": 5, "postgres": -1, "delta": 0 }, { "entity": "company_plans", "mysql": 5, "postgres": -1, "delta": 0 }, { "entity": "credit_balances", "mysql": 8, "postgres": -1, "delta": 0 }, { "entity": "categories", "mysql": 8465, "postgres": -1, "delta": 0 }, { "entity": "attributes", "mysql": 198319, "postgres": -1, "delta": 0 }, { "entity": "category_attributes", "mysql": 177404, "postgres": -1, "delta": 0 }, { "entity": "custom_variables", "mysql": 54, "postgres": -1, "delta": 0, "note": "label/example → value" }, { "entity": "xml_feeds", "mysql": 33, "postgres": -1, "delta": 0, "note": "xml_feeds → input_feeds" }, { "entity": "raw_products", "mysql": 159070, "postgres": -1, "delta": 0 }, { "entity": "processed_products", "mysql": 7953, "postgres": -1, "delta": 0 }, { "entity": "export_feeds", "mysql": 11, "postgres": -1, "delta": 0 }, { "entity": "files", "mysql": 1, "postgres": -1, "delta": 0, "note": "metadata only; blobs not copied" }, { "entity": "company_settings", "mysql": 7, "postgres": -1, "delta": 0, "note": "partial: language + merge_products only" }, { "entity": "api_keys", "mysql": 4, "postgres": -1, "delta": 0, "note": "not migrated; clients must mint new keys" }, { "entity": "processing_jobs", "mysql": 1023, "postgres": -1, "delta": 0, "note": "ephemeral history not migrated" } ], "orphans": [ { "check": "skipped_dry_run", "count": 0, "sample": "orphan FK checks require a live Postgres load", "pass": true } ], "orphan_summary": { "passed": 1, "failed": 0, "total": 1 }, "ok": true }, "notes": [ "Clerk is excluded: users mapped by email only; no Clerk API.", "Legacy password hashes are never imported.", "API key secrets are not migrated; clients must mint new keys (seed-demo / ensure-demo for local).", "File blobs are metadata-only; resync object storage separately.", "Job history (processing_jobs / queues) is ephemeral and not migrated.", "company_settings: language + merge_products only (domain settings); other legacy settings fields are not imported.", "woocommerce_configs: migrated from wc_* custom_fields when domain woo is enabled." ], "elapsed_ms": 13288 }