Files
App-Estoque-LiberiKids/scripts/migrate-pix-fields.js
2025-10-14 14:04:17 -03:00

61 lines
1.9 KiB
JavaScript

const { createClient } = require('@supabase/supabase-js');
require('dotenv').config();
const supabase = createClient(
process.env.SUPABASE_URL,
process.env.SUPABASE_ANON_KEY
);
async function migratePIXFields() {
console.log('🏦 Iniciando migração dos campos PIX...');
try {
// Executar as alterações na tabela vendas
const queries = [
"ALTER TABLE vendas ADD COLUMN IF NOT EXISTS status_pagamento VARCHAR(20) DEFAULT 'pendente'",
"ALTER TABLE vendas ADD COLUMN IF NOT EXISTS data_pagamento TIMESTAMP",
"ALTER TABLE vendas ADD COLUMN IF NOT EXISTS pix_payment_id VARCHAR(100)",
"ALTER TABLE vendas ADD COLUMN IF NOT EXISTS pix_qr_code TEXT",
"ALTER TABLE vendas ADD COLUMN IF NOT EXISTS metodo_pagamento VARCHAR(20) DEFAULT 'dinheiro'"
];
for (const query of queries) {
console.log(`Executando: ${query}`);
const { error } = await supabase.rpc('exec_sql', { sql: query });
if (error) {
console.error(`Erro ao executar query: ${error.message}`);
// Continuar mesmo com erro (campo pode já existir)
} else {
console.log('✅ Query executada com sucesso');
}
}
// Criar índices
const indexes = [
"CREATE INDEX IF NOT EXISTS idx_vendas_status_pagamento ON vendas(status_pagamento)",
"CREATE INDEX IF NOT EXISTS idx_vendas_pix_payment_id ON vendas(pix_payment_id)"
];
for (const index of indexes) {
console.log(`Criando índice: ${index}`);
const { error } = await supabase.rpc('exec_sql', { sql: index });
if (error) {
console.error(`Erro ao criar índice: ${error.message}`);
} else {
console.log('✅ Índice criado com sucesso');
}
}
console.log('🎉 Migração PIX concluída com sucesso!');
} catch (error) {
console.error('❌ Erro na migração:', error);
process.exit(1);
}
}
// Executar migração
migratePIXFields();