{"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-qbcore","status":"publish","type":"post","link":"https:\/\/rpcrate.com\/pt\/how-to-migrate-esx-qbcore\/","title":{"rendered":"Como Migrar um Servidor ESX para QBCore"},"content":{"rendered":"<p><strong>Resposta direta:<\/strong> A migra\u00e7\u00e3o de ESX para QBCore \u00e9 uma reescrita controlada e migra\u00e7\u00e3o de dados, n\u00e3o uma troca de framework. Construa um servidor de est\u00e1gio QBCore limpo, inventarie todas as depend\u00eancias ESX, defina um mapeamento de dados expl\u00edcito campo a campo, porte recursos contra APIs atuais, ensaie a revers\u00e3o e s\u00f3 fa\u00e7a a transi\u00e7\u00e3o ap\u00f3s a aprova\u00e7\u00e3o das verifica\u00e7\u00f5es referencial e de jogabilidade.<\/p>\n<h2 id=\"what-must-be-mapped\">O que deve ser mapeado<\/h2>\n<div aria-label=\"Tabela com rolagem horizontal\" class=\"fmx-guide-table\" role=\"region\" tabindex=\"0\">\n<table>\n<thead>\n<tr>\n<th>Superf\u00edcie<\/th>\n<th>Decis\u00e3o de migra\u00e7\u00e3o<\/th>\n<th>Evid\u00eancia de aceita\u00e7\u00e3o<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<th>Identidade do jogador<\/th>\n<td>Mapeie identificadores e personagens legados para IDs de cidad\u00e3os QBCore sem colis\u00f5es.<\/td>\n<td>Cada jogador amostrado se resolve em um registro de personagem pretendido.<\/td>\n<\/tr>\n<tr>\n<th>Dinheiro e contas<\/th>\n<td>Mapeie cada conta explicitamente; n\u00e3o assuma nomes ou sem\u00e2nticas iguais.<\/td>\n<td>Totais pr\u00e9\/p\u00f3s reconciliados para uma amostra congelada.<\/td>\n<\/tr>\n<tr>\n<th>Empregos e n\u00edveis de cargo<\/th>\n<td>Defina uma correspond\u00eancia para cada emprego e n\u00edvel de cargo em uso, incluindo alternativas para personagens desempregados.<\/td>\n<td>Permiss\u00f5es e fluxos de pagamento correspondem ao mapa aprovado.<\/td>\n<\/tr>\n<tr>\n<th>Itens e invent\u00e1rio<\/th>\n<td>Mapeie nomes, metadados, peso, slots e propriedade de armazenamento.<\/td>\n<td>Sem nomes de itens \u00f3rf\u00e3os; invent\u00e1rios persistem ap\u00f3s reconex\u00e3o.<\/td>\n<\/tr>\n<tr>\n<th>Ve\u00edculos e propriedades<\/th>\n<td>Mapeie chaves de propriedade, garagens e campos de estado, preservando placas e resolvendo colis\u00f5es explicitamente.<\/td>\n<td>Registros de propriedade permanecem \u00fanicos e acess\u00edveis.<\/td>\n<\/tr>\n<tr>\n<th>Recursos personalizados<\/th>\n<td>Substitua callbacks, eventos e APIs de jogador do ESX pelos equivalentes documentados do QBCore.<\/td>\n<td>Cada fluxo de recurso ponta a ponta passa em staging.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h2 id=\"migration-sequence\">Sequ\u00eancia de migra\u00e7\u00e3o<\/h2>\n<ol>\n<li>Congele altera\u00e7\u00f5es de esquema e de recursos; fa\u00e7a um backup restaur\u00e1vel do banco de dados e dos arquivos.<\/li>\n<li>Crie o QBCore a partir de sua receita ou reposit\u00f3rio mantido em um ambiente de staging isolado.<\/li>\n<li>Exporte um invent\u00e1rio de esquema e escreva um mapeamento versionado para identidades, contas, empregos, itens, ve\u00edculos e tabelas personalizadas.<\/li>\n<li>Torne as transforma\u00e7\u00f5es idempotentes e execute-as apenas em uma c\u00f3pia descart\u00e1vel do banco de dados.<\/li>\n<li>Adapte os recursos um de cada vez usando a documenta\u00e7\u00e3o atual do QBCore; n\u00e3o dependa de substitui\u00e7\u00f5es cegas de nomes de eventos.<\/li>\n<li>Concilie contagens de linhas, unicidade, somas e refer\u00eancias \u00f3rf\u00e3s, depois execute testes de jogabilidade, reconex\u00e3o e reinicializa\u00e7\u00e3o.<\/li>\n<li>Ensaie a revers\u00e3o. Durante a transi\u00e7\u00e3o, pare as grava\u00e7\u00f5es, fa\u00e7a um backup final, execute novamente o processo comprovado e verifique antes de reabrir as conex\u00f5es.<\/li>\n<\/ol>\n<h2 id=\"do-not-copy-a-generic-sql-template\">N\u00e3o copie um template SQL gen\u00e9rico<\/h2>\n<p>Os esquemas ESX e QBCore variam por release, receita, invent\u00e1rio e recursos personalizados. Uma instru\u00e7\u00e3o gen\u00e9rica CREATE TABLE ou INSERT pode descartar metadados silenciosamente ou criar padr\u00f5es inv\u00e1lidos. Derive o SQL de migra\u00e7\u00e3o dos dois esquemas realmente instalados, revise as restri\u00e7\u00f5es e preserve um mapa de identidade legado-para-novo para suporte e auditoria.<\/p>\n<h2 id=\"scope-and-limitations\">Escopo e limita\u00e7\u00f5es<\/h2>\n<p>Este \u00e9 um plano de controle de migra\u00e7\u00e3o, n\u00e3o um SQL execut\u00e1vel para um servidor desconhecido. Ele n\u00e3o estima horas nem promete convers\u00e3o sem perdas. Recursos criptografados ou protegidos por escrow podem n\u00e3o ser port\u00e1veis. Confira as licen\u00e7as, as APIs atuais dos frameworks e os direitos de migra\u00e7\u00e3o de cada pacote antes de come\u00e7ar.<\/p>\n<h2 id=\"fivemx-primary-sources\">Fontes prim\u00e1rias<\/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: reposit\u00f3rio oficial esx_core<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/qbcore-fivem\/qb-core\">QBCore: reposit\u00f3rio oficial qb-core<\/a><\/li>\n<li><a href=\"https:\/\/docs.qbox.re\/\">Qbox: documenta\u00e7\u00e3o oficial<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>Resposta direta: Migrar ESX para QBCore \u00e9 uma reescrita controlada e migra\u00e7\u00e3o de dados, n\u00e3o uma troca de framework. Construa um servidor de est\u00e1gio QBCore limpo, inventarie todas as depend\u00eancias ESX, defina um mapeamento de dados expl\u00edcito campo a campo, porte recursos contra APIs atuais, ensaie a revers\u00e3o e s\u00f3 fa\u00e7a a transi\u00e7\u00e3o ap\u00f3s a aprova\u00e7\u00e3o das verifica\u00e7\u00f5es referencial e de jogabilidade.<\/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\/pt\/wp-json\/wp\/v2\/posts\/199542","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rpcrate.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rpcrate.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rpcrate.com\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rpcrate.com\/pt\/wp-json\/wp\/v2\/comments?post=199542"}],"version-history":[{"count":5,"href":"https:\/\/rpcrate.com\/pt\/wp-json\/wp\/v2\/posts\/199542\/revisions"}],"predecessor-version":[{"id":214893,"href":"https:\/\/rpcrate.com\/pt\/wp-json\/wp\/v2\/posts\/199542\/revisions\/214893"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rpcrate.com\/pt\/wp-json\/wp\/v2\/media\/199543"}],"wp:attachment":[{"href":"https:\/\/rpcrate.com\/pt\/wp-json\/wp\/v2\/media?parent=199542"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rpcrate.com\/pt\/wp-json\/wp\/v2\/categories?post=199542"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rpcrate.com\/pt\/wp-json\/wp\/v2\/tags?post=199542"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}