You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Migracao normaliza ids nao-uuid (dados de celular)
Dados antigos/de celular podem ter id nao-uuid (uid() cai num fallback
Date.now()+random sem crypto.randomUUID) e o Postgres recusa na coluna
uuid — era o que quebrava o import do backup. montarMigracao agora
converte ids nao-uuid para um uuid DETERMINISTICO (mesma entrada -> mesmo
uuid, reimportar nao duplica) e remapeia as FKs das transacoes por mapa
(nome + id). Import mostra o erro real da nuvem (antes era generico).
Teste cobre normalizacao, determinismo, dedupe, orfas e isolamento.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
// Logado na nuvem: SOMA o backup à conta com dedupe (categorias
3012
-
// iguais por nome não duplicam), em vez de substituir o aparelho.
3013
-
if(!window.confirm("Enviar este backup para a sua conta na nuvem?\n\nEle será somado ao que já existe — categorias com o mesmo nome não duplicam, e nada é apagado."))return;
3014
-
setStatus("saving");
3009
+
dados=normalizarDados(parsed);
3010
+
}catch(e){
3011
+
console.error("JSON inválido no backup:",e);
3012
+
returnshowToast("O arquivo não é um JSON válido. Exporte de novo pelo app.",true,6000);
3013
+
}
3014
+
if(!dados)returnshowToast("Estrutura do backup não reconhecida. Exporte de novo pelo app.",true,6000);
3015
+
3016
+
// 2) aplicar
3017
+
if(modoNuvemRef.current&&userId){
3018
+
// Logado na nuvem: SOMA o backup à conta com dedupe (categorias
3019
+
// iguais por nome não duplicam), em vez de substituir o aparelho.
3020
+
if(!window.confirm("Enviar este backup para a sua conta na nuvem?\n\nEle será somado ao que já existe — categorias com o mesmo nome não duplicam, e nada é apagado."))return;
0 commit comments