Files
zellyy-finance/src/lib/supabase/setup/status.ts
gpt-engineer-app[bot] af52ec897f Execute SQL queries
Run the provided SQL queries to create tables.
2025-03-15 16:34:20 +00:00

89 lines
2.2 KiB
TypeScript

import { supabase } from '../client';
/**
* 테이블 상태를 확인합니다.
*/
export const checkTablesStatus = async (): Promise<{
transactions: boolean;
budgets: boolean;
category_budgets: boolean;
}> => {
const tables = {
transactions: false,
budgets: false,
category_budgets: false
};
try {
// transactions 테이블 확인
const { data: transactionsData, error: transactionsError } = await supabase
.from('transactions')
.select('*', { count: 'exact', head: true });
tables.transactions = !transactionsError;
// budgets 테이블 확인
const { data: budgetsData, error: budgetsError } = await supabase
.from('budgets')
.select('*', { count: 'exact', head: true });
tables.budgets = !budgetsError;
// category_budgets 테이블 확인
const { data: categoryBudgetsData, error: categoryBudgetsError } = await supabase
.from('category_budgets')
.select('*', { count: 'exact', head: true });
tables.category_budgets = !categoryBudgetsError;
return tables;
} catch (error) {
console.error('테이블 상태 확인 중 오류 발생:', error);
return tables;
}
};
/**
* 기존 테이블 목록을 가져옵니다.
* 참고: get_tables 함수는 사용하지 않음
*/
export const getExistingTables = async (): Promise<string[] | null> => {
try {
const tables = [];
// 직접 각 테이블 확인
const { error: transactionsError } = await supabase
.from('transactions')
.select('id')
.limit(1);
if (!transactionsError) {
tables.push('transactions');
}
const { error: budgetsError } = await supabase
.from('budgets')
.select('id')
.limit(1);
if (!budgetsError) {
tables.push('budgets');
}
const { error: categoryBudgetsError } = await supabase
.from('category_budgets')
.select('id')
.limit(1);
if (!categoryBudgetsError) {
tables.push('category_budgets');
}
return tables;
} catch (error) {
console.error('테이블 목록 확인 중 오류 발생:', error);
return null;
}
};