{"id":199542,"date":"2025-10-02T15:33:52","date_gmt":"2025-10-02T13:33:52","guid":{"rendered":"https:\/\/fivemx.com\/?p=199542"},"modified":"2026-08-15T19:30:00","modified_gmt":"2026-08-15T17:30:00","slug":"como-migrar-esx-a-qbcore","status":"publish","type":"post","link":"https:\/\/rpcrate.com\/es\/how-to-migrate-esx-qbcore\/","title":{"rendered":"C\u00f3mo migrar un servidor ESX a QBCore"},"content":{"rendered":"<p><strong>Respuesta directa:<\/strong> Migrar ESX a QBCore es una reescritura controlada y una migraci\u00f3n de datos, no un cambio de framework. Crea un servidor de staging QBCore limpio, inventar\u00eda cada dependencia ESX, define un mapeo de datos expl\u00edcito campo por campo, porta recursos contra APIs actuales, ensaya la reversi\u00f3n y realiza el cambio solo despu\u00e9s de que las verificaciones referenciales y de jugabilidad sean exitosas.<\/p>\n<h2 id=\"what-must-be-mapped\">Qu\u00e9 debe mapearse<\/h2>\n<div aria-label=\"Tabla con desplazamiento horizontal\" class=\"fmx-guide-table\" role=\"region\" tabindex=\"0\">\n<table>\n<thead>\n<tr>\n<th>Superficie<\/th>\n<th>Decisi\u00f3n de migraci\u00f3n<\/th>\n<th>Evidencia de aceptaci\u00f3n<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<th>Identidad del jugador<\/th>\n<td>Mapea identificadores y personajes heredados a IDs de ciudadano QBCore sin colisiones.<\/td>\n<td>Cada jugador muestreado se resuelve en un registro de personaje previsto.<\/td>\n<\/tr>\n<tr>\n<th>Dinero y cuentas<\/th>\n<td>Mapea cada cuenta expl\u00edcitamente; no asumas nombres o sem\u00e1nticas iguales.<\/td>\n<td>Los totales pre\/post se concilian para una muestra congelada.<\/td>\n<\/tr>\n<tr>\n<th>Trabajos y rangos<\/th>\n<td>Define un mapeo para cada trabajo y rango activo, incluyendo las opciones por defecto para desempleados.<\/td>\n<td>Los permisos y los flujos de pago coinciden con el mapa aprobado.<\/td>\n<\/tr>\n<tr>\n<th>Objetos e inventario<\/th>\n<td>Mapea nombres, metadatos, peso, ranuras y propiedad del almacenamiento.<\/td>\n<td>No hay nombres de objetos hu\u00e9rfanos; los inventarios persisten despu\u00e9s de reconectarse.<\/td>\n<\/tr>\n<tr>\n<th>Veh\u00edculos y propiedades<\/th>\n<td>Mapea las claves de propiedad, los garajes y los campos de estado, conservando las matr\u00edculas y resolviendo las colisiones expl\u00edcitamente.<\/td>\n<td>Los registros de propiedad siguen siendo \u00fanicos y accesibles.<\/td>\n<\/tr>\n<tr>\n<th>Recursos personalizados<\/th>\n<td>Sustituye los callbacks, los eventos y las API de jugador de ESX por sus equivalentes documentados en QBCore.<\/td>\n<td>Cada flujo completo de un recurso supera las pruebas en el entorno de ensayo.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h2 id=\"migration-sequence\">Secuencia de migraci\u00f3n<\/h2>\n<ol>\n<li>Congela los cambios de esquema y recursos; realiza una copia de seguridad restaurable de la base de datos y de los archivos.<\/li>\n<li>Crea QBCore a partir de su receta o repositorio mantenido en un entorno de ensayo aislado.<\/li>\n<li>Exporta un inventario de esquemas y escribe un mapeo versionado para identidades, cuentas, trabajos, \u00edtems, veh\u00edculos y tablas personalizadas.<\/li>\n<li>Haz que las transformaciones sean idempotentes y ejec\u00fatalas solo contra una copia de base de datos desechable.<\/li>\n<li>Adapta los recursos uno a la vez usando la documentaci\u00f3n actual de QBCore; no conf\u00edes en el reemplazo ciego de nombres de eventos.<\/li>\n<li>Reconcilia los recuentos de filas, la unicidad, las sumas y las referencias hu\u00e9rfanas, luego ejecuta las pruebas de juego, reconecta y reinicia.<\/li>\n<li>Ensaya el rollback. Durante el corte, det\u00e9n las escrituras, haz una copia de seguridad final, vuelve a ejecutar el proceso probado y verifica antes de permitir de nuevo las conexiones.<\/li>\n<\/ol>\n<h2 id=\"do-not-copy-a-generic-sql-template\">No copies una plantilla gen\u00e9rica de SQL<\/h2>\n<p>Los esquemas de ESX y QBCore var\u00edan seg\u00fan la versi\u00f3n, la receta, el inventario y los recursos personalizados. Una sentencia gen\u00e9rica CREATE TABLE o INSERT puede descartar silenciosamente metadatos o crear valores predeterminados inv\u00e1lidos. Deriva el SQL de migraci\u00f3n de los dos esquemas realmente instalados, revisa las restricciones y preserva un mapa de identidad de legado a nuevo para soporte y auditor\u00eda.<\/p>\n<h2 id=\"scope-and-limitations\">Alcance y limitaciones<\/h2>\n<p>Este es un plan de control de migraci\u00f3n, no un SQL ejecutable para un servidor desconocido. No estima horas ni promete una conversi\u00f3n sin p\u00e9rdidas. Los recursos cifrados o protegidos por escrow pueden no ser port\u00e1tiles. Revisa las licencias, las API del framework actual y los derechos de migraci\u00f3n de cada paquete antes de empezar a trabajar.<\/p>\n<h2 id=\"fivemx-primary-sources\">Fuentes primarias<\/h2>\n<ul>\n<li><a href=\"https:\/\/docs.fivem.net\/docs\/server-manual\/frameworks\/\">Cfx.re: Frameworks<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/esx-framework\/esx_core\">ESX: repositorio oficial de esx_core<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/qbcore-fivem\/qb-core\">QBCore: repositorio oficial de qb-core<\/a><\/li>\n<li><a href=\"https:\/\/docs.qbox.re\/\">Qbox: documentaci\u00f3n oficial<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>Respuesta directa: Migrar ESX a QBCore es una reescritura controlada y una migraci\u00f3n de datos, no un cambio de framework. Construye un servidor de staging QBCore limpio, inventar\u00eda cada dependencia ESX, define un mapa de datos expl\u00edcito campo por campo, porta recursos contra las APIs actuales, ensaya la reversi\u00f3n y realiza el cambio solo despu\u00e9s de que las verificaciones referenciales y de jugabilidad sean exitosas.<\/p>","protected":false},"author":1,"featured_media":199543,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1902,2882,1899],"tags":[2858,2950,2859],"class_list":["post-199542","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-fivem-related","category-framework-conversion","category-tutorials","tag-esx","tag-framework","tag-qbcore"],"_links":{"self":[{"href":"https:\/\/rpcrate.com\/es\/wp-json\/wp\/v2\/posts\/199542","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rpcrate.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rpcrate.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rpcrate.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rpcrate.com\/es\/wp-json\/wp\/v2\/comments?post=199542"}],"version-history":[{"count":5,"href":"https:\/\/rpcrate.com\/es\/wp-json\/wp\/v2\/posts\/199542\/revisions"}],"predecessor-version":[{"id":214893,"href":"https:\/\/rpcrate.com\/es\/wp-json\/wp\/v2\/posts\/199542\/revisions\/214893"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rpcrate.com\/es\/wp-json\/wp\/v2\/media\/199543"}],"wp:attachment":[{"href":"https:\/\/rpcrate.com\/es\/wp-json\/wp\/v2\/media?parent=199542"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rpcrate.com\/es\/wp-json\/wp\/v2\/categories?post=199542"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rpcrate.com\/es\/wp-json\/wp\/v2\/tags?post=199542"}],"curies":[{"name":"gracias","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}