First commit - backup RDOC
This commit is contained in:
99
scripts/verify-supabase.js
Normal file
99
scripts/verify-supabase.js
Normal file
@@ -0,0 +1,99 @@
|
||||
|
||||
import { createClient } from '@supabase/supabase-js'
|
||||
import fs from 'fs'
|
||||
import path from 'path'
|
||||
import { fileURLToPath } from 'url'
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url)
|
||||
const __dirname = path.dirname(__filename)
|
||||
|
||||
// Read .env file
|
||||
const envPath = path.resolve(__dirname, '../.env')
|
||||
console.log('Lendo arquivo .env de:', envPath)
|
||||
|
||||
if (!fs.existsSync(envPath)) {
|
||||
console.error('Arquivo .env não encontrado!')
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
const envContent = fs.readFileSync(envPath, 'utf-8')
|
||||
const envConfig = {}
|
||||
envContent.split('\n').forEach(line => {
|
||||
const match = line.match(/^([^=]+)=(.*)$/)
|
||||
if (match) {
|
||||
const key = match[1].trim()
|
||||
const value = match[2].trim().replace(/^"(.*)"$/, '$1').replace(/^'(.*)'$/, '$1')
|
||||
envConfig[key] = value
|
||||
}
|
||||
})
|
||||
|
||||
const supabaseUrl = envConfig.VITE_SUPABASE_URL
|
||||
const supabaseAnonKey = envConfig.VITE_SUPABASE_ANON_KEY
|
||||
|
||||
if (!supabaseUrl || !supabaseAnonKey) {
|
||||
console.error('Credenciais Supabase não encontradas no .env')
|
||||
console.log('Chaves encontradas:', Object.keys(envConfig))
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
const supabase = createClient(supabaseUrl, supabaseAnonKey)
|
||||
|
||||
const tables = [
|
||||
'usuarios',
|
||||
'obras',
|
||||
'rdos',
|
||||
'rdo_atividades',
|
||||
'rdo_mao_obra',
|
||||
'rdo_equipamentos',
|
||||
'rdo_ocorrencias',
|
||||
'rdo_anexos',
|
||||
'rdo_inspecoes_solda',
|
||||
'rdo_verificacoes_torque',
|
||||
'tarefas',
|
||||
'task_logs'
|
||||
]
|
||||
|
||||
async function verify() {
|
||||
console.log('Iniciando verificação de integridade do Supabase...')
|
||||
console.log(`URL: ${supabaseUrl}`)
|
||||
|
||||
// Test connection first
|
||||
const { data: authData, error: authError } = await supabase.auth.getSession()
|
||||
if (authError) {
|
||||
console.warn('Aviso: Erro ao verificar sessão de auth (pode ser normal se não houver sessão persistida):', authError.message)
|
||||
}
|
||||
|
||||
let allGood = true
|
||||
let summary = []
|
||||
|
||||
for (const table of tables) {
|
||||
try {
|
||||
// Using head: true to avoid fetching data, just checking access/existence
|
||||
const { count, error } = await supabase
|
||||
.from(table)
|
||||
.select('*', { count: 'exact', head: true })
|
||||
|
||||
if (error) {
|
||||
console.error(`❌ Tabela '${table}': Erro - ${error.message} (Code: ${error.code})`)
|
||||
summary.push({ table, status: 'Erro', message: error.message })
|
||||
allGood = false
|
||||
} else {
|
||||
console.log(`✅ Tabela '${table}': OK (Registros: ${count})`)
|
||||
summary.push({ table, status: 'OK', count })
|
||||
}
|
||||
} catch (e) {
|
||||
console.error(`❌ Tabela '${table}': Exceção - ${e.message}`)
|
||||
summary.push({ table, status: 'Exceção', message: e.message })
|
||||
allGood = false
|
||||
}
|
||||
}
|
||||
|
||||
console.log('\n--- Resumo ---')
|
||||
if (allGood) {
|
||||
console.log('Todas as tabelas verificadas parecem acessíveis.')
|
||||
} else {
|
||||
console.log('Foram encontrados problemas em algumas tabelas.')
|
||||
}
|
||||
}
|
||||
|
||||
verify()
|
||||
Reference in New Issue
Block a user