Files
octto-engenharia/frontend/prisma/migrate-locale.mjs

50 lines
1.5 KiB
JavaScript

// Script para migrar dados existentes de PageContent para o novo formato com locale
import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();
async function main() {
console.log('🔄 Migrando dados para incluir locale...\n');
// Buscar todos os registros que não têm locale definido ou têm locale null
const pages = await prisma.pageContent.findMany();
console.log(`📄 Encontrados ${pages.length} registros de PageContent\n`);
for (const page of pages) {
// Se o registro já tem locale 'pt' e está no formato correto, pular
if (page.locale === 'pt') {
console.log(`✓ "${page.slug}" (${page.locale}) - já migrado`);
continue;
}
// Se tem locale diferente de pt, pular também (já foi migrado)
if (page.locale && ['en', 'es'].includes(page.locale)) {
console.log(`✓ "${page.slug}" (${page.locale}) - já é tradução`);
continue;
}
// Atualizar para ter locale 'pt'
try {
await prisma.pageContent.update({
where: { id: page.id },
data: { locale: 'pt' }
});
console.log(`✅ "${page.slug}" - atualizado para locale 'pt'`);
} catch (error) {
console.error(`❌ Erro ao atualizar "${page.slug}":`, error.message);
}
}
console.log('\n✨ Migração concluída!');
}
main()
.catch((e) => {
console.error('Erro na migração:', e);
process.exit(1);
})
.finally(async () => {
await prisma.$disconnect();
});