테이블 타입관리 에러 해결 #11

Merged
hyeonsu merged 1 commits from tableMngError into dev 2025-09-01 15:38:46 +09:00
1 changed files with 19 additions and 2 deletions

View File

@ -22,7 +22,7 @@ export class TableManagementService {
logger.info("테이블 목록 조회 시작");
// information_schema는 여전히 $queryRaw 사용
const tables = await prisma.$queryRaw<TableInfo[]>`
const rawTables = await prisma.$queryRaw<any[]>`
SELECT
t.table_name as "tableName",
COALESCE(tl.table_label, t.table_name) as "displayName",
@ -38,6 +38,12 @@ export class TableManagementService {
ORDER BY t.table_name
`;
// BigInt를 Number로 변환하여 JSON 직렬화 문제 해결
const tables: TableInfo[] = rawTables.map((table) => ({
...table,
columnCount: Number(table.columnCount), // BigInt → Number 변환
}));
logger.info(`테이블 목록 조회 완료: ${tables.length}`);
return tables;
} catch (error) {
@ -57,7 +63,7 @@ export class TableManagementService {
logger.info(`컬럼 정보 조회 시작: ${tableName}`);
// information_schema는 여전히 $queryRaw 사용
const columns = await prisma.$queryRaw<ColumnTypeInfo[]>`
const rawColumns = await prisma.$queryRaw<any[]>`
SELECT
c.column_name as "columnName",
COALESCE(cl.column_label, c.column_name) as "displayName",
@ -82,6 +88,17 @@ export class TableManagementService {
ORDER BY c.ordinal_position
`;
// BigInt를 Number로 변환하여 JSON 직렬화 문제 해결
const columns: ColumnTypeInfo[] = rawColumns.map((column) => ({
...column,
maxLength: column.maxLength ? Number(column.maxLength) : null,
numericPrecision: column.numericPrecision
? Number(column.numericPrecision)
: null,
numericScale: column.numericScale ? Number(column.numericScale) : null,
displayOrder: column.displayOrder ? Number(column.displayOrder) : null,
}));
logger.info(`컬럼 정보 조회 완료: ${tableName}, ${columns.length}`);
return columns;
} catch (error) {