188 lines
4.4 KiB
JSON
188 lines
4.4 KiB
JSON
{
|
|||
|
|
"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
|
||
|
|
}
|