const supabase = require('../config/supabase'); const fs = require('fs'); const path = require('path'); async function migrateDespesasToTextFields() { console.log('🔄 Migrando tabela despesas para campos de texto livre...'); try { // Ler o script SQL const sqlScript = fs.readFileSync( path.join(__dirname, '../sql/alter-despesas-text-fields.sql'), 'utf8' ); // Dividir o script em comandos individuais const commands = sqlScript .split(';') .map(cmd => cmd.trim()) .filter(cmd => cmd.length > 0 && !cmd.startsWith('--')); console.log(`📝 Executando ${commands.length} comandos SQL...`); // Executar cada comando for (let i = 0; i < commands.length; i++) { const command = commands[i]; console.log(`⚡ Executando comando ${i + 1}/${commands.length}...`); try { const { error } = await supabase.rpc('exec_sql', { sql_query: command }); if (error) { console.log(`⚠️ Comando ${i + 1} com aviso:`, error.message); } else { console.log(`✅ Comando ${i + 1} executado com sucesso`); } } catch (cmdError) { console.log(`⚠️ Erro no comando ${i + 1}:`, cmdError.message); } } // Verificar se as colunas foram criadas console.log('🔍 Verificando estrutura da tabela...'); const { data: columns, error: columnsError } = await supabase .from('information_schema.columns') .select('column_name') .eq('table_name', 'despesas') .in('column_name', ['tipo_nome', 'fornecedor_nome']); if (columnsError) { console.log('⚠️ Não foi possível verificar as colunas:', columnsError.message); } else { const columnNames = columns.map(col => col.column_name); if (columnNames.includes('tipo_nome') && columnNames.includes('fornecedor_nome')) { console.log('✅ Colunas tipo_nome e fornecedor_nome criadas com sucesso!'); } else { console.log('⚠️ Algumas colunas podem não ter sido criadas:', columnNames); } } console.log('🎉 Migração concluída!'); console.log('📋 Agora você pode usar campos de texto livre para Tipo de Despesa e Fornecedor'); } catch (error) { console.error('❌ Erro durante a migração:', error); } } // Executar se chamado diretamente if (require.main === module) { migrateDespesasToTextFields(); } module.exports = migrateDespesasToTextFields;