feat: CMS com limites de caracteres, traduções auto e painel de notificações
This commit is contained in:
49
frontend/prisma/migrate-locale.mjs
Normal file
49
frontend/prisma/migrate-locale.mjs
Normal file
@@ -0,0 +1,49 @@
|
||||
// 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();
|
||||
});
|
||||
Reference in New Issue
Block a user