61 lines
1.9 KiB
JavaScript
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();
|