{ "generated_at": "2026-08-04T21:31:12Z", "mode": "live", "domains": "all", "company_filter": [ "97e1a309-3d23-4aa2-b518-8e8d7afdfec7" ], "resume": true, "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, "demo_memberships": 1, "demo_user": 1, "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, "standard_fields": 22, "usage_metrics": 1, "users": 27, "woocommerce_configs": 0 }, "validation": { "mode": "live", "counts": [ { "entity": "companies", "mysql": 31, "postgres": 1, "delta": -30 }, { "entity": "profiles", "mysql": 27, "postgres": 5, "delta": -22, "note": "profiles → memberships" }, { "entity": "users", "mysql": -1, "postgres": 27, "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": 5, "delta": 0 }, { "entity": "company_plans", "mysql": 5, "postgres": 1, "delta": -4 }, { "entity": "credit_balances", "mysql": 8, "postgres": 1, "delta": -7 }, { "entity": "categories", "mysql": 8465, "postgres": 119, "delta": -8346 }, { "entity": "attributes", "mysql": 198319, "postgres": 303, "delta": -198016 }, { "entity": "category_attributes", "mysql": 177404, "postgres": 307, "delta": -177097 }, { "entity": "custom_variables", "mysql": 54, "postgres": 3, "delta": -51, "note": "label/example → value" }, { "entity": "xml_feeds", "mysql": 33, "postgres": 12, "delta": -21, "note": "xml_feeds → input_feeds" }, { "entity": "raw_products", "mysql": 159070, "postgres": 29115, "delta": -129955 }, { "entity": "processed_products", "mysql": 7953, "postgres": 4378, "delta": -3575 }, { "entity": "export_feeds", "mysql": 11, "postgres": 2, "delta": -9 }, { "entity": "files", "mysql": 1, "postgres": 0, "delta": -1, "note": "metadata only; blobs not copied" }, { "entity": "company_settings", "mysql": 7, "postgres": 1, "delta": -6, "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" } ], "postgres_counts": { "attributes": 303, "categories": 119, "category_attributes": 307, "companies": 1, "company_plans": 1, "credit_balances": 1, "custom_variables": 3, "export_feeds": 2, "feed_mappings": 11, "files": 0, "input_feeds": 12, "memberships": 5, "plans": 5, "processed_products": 4378, "raw_products": 29115, "users": 27 }, "orphans": [ { "check": "memberships_missing_user", "count": 0, "pass": true }, { "check": "memberships_missing_company", "count": 0, "pass": true }, { "check": "categories_missing_company", "count": 0, "pass": true }, { "check": "attributes_missing_company", "count": 0, "pass": true }, { "check": "custom_variables_missing_company", "count": 0, "pass": true }, { "check": "raw_products_missing_company", "count": 0, "pass": true }, { "check": "raw_products_missing_feed", "count": 0, "pass": true }, { "check": "processed_missing_company", "count": 0, "pass": true }, { "check": "processed_missing_raw", "count": 0, "pass": true }, { "check": "processed_missing_feed", "count": 0, "pass": true }, { "check": "export_feeds_missing_company", "count": 0, "pass": true }, { "check": "export_feeds_missing_source", "count": 0, "pass": true }, { "check": "feed_mappings_missing_feed", "count": 0, "pass": true }, { "check": "files_missing_company", "count": 0, "pass": true }, { "check": "company_plans_missing_plan", "count": 0, "pass": true }, { "check": "companies_without_active_plan", "count": 0, "pass": true }, { "check": "platform_admins", "count": 1, "pass": true } ], "orphan_summary": { "passed": 17, "failed": 0, "total": 17 }, "ok": true }, "demo": { "email": "demo@descrybe.local", "password_set": true, "user_id": "72b9ebb4-786a-4091-b3cc-671cf58cff4f", "primary_company": "604f23a8-b66e-4b21-8b45-0d72b68f4790", "primary_company_name": "Local Demo Co", "memberships_admin": 1, "platform_admin": true, "note": "Password documented in docs/portable-mysql-pg-migration.md (not written to report JSON)." }, "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": 31389 }