refactor: System1 API 인증 체계 SSO 전환 및 마이그레이션 정비
- SSO JWT 인증으로 전환 (auth.service.js) - worker_id → user_id 마이그레이션 완료 - departments 연동, CORS 미들웨어 정리 - 불필요 파일 삭제 (tk_database.db, visitRequestController.js) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -4,12 +4,10 @@ const path = require('path');
|
||||
|
||||
async function setupAttendanceDB() {
|
||||
try {
|
||||
console.log('🚀 근태 관리 DB 설정 시작...');
|
||||
|
||||
const db = await getDb();
|
||||
|
||||
// 1. 근로 유형 테이블 생성
|
||||
console.log('📋 근로 유형 테이블 생성 중...');
|
||||
await db.execute(`
|
||||
CREATE TABLE IF NOT EXISTS work_attendance_types (
|
||||
id INT PRIMARY KEY AUTO_INCREMENT,
|
||||
@@ -23,7 +21,6 @@ async function setupAttendanceDB() {
|
||||
`);
|
||||
|
||||
// 2. 휴가 유형 테이블 생성
|
||||
console.log('🏖️ 휴가 유형 테이블 생성 중...');
|
||||
await db.execute(`
|
||||
CREATE TABLE IF NOT EXISTS vacation_types (
|
||||
id INT PRIMARY KEY AUTO_INCREMENT,
|
||||
@@ -38,7 +35,6 @@ async function setupAttendanceDB() {
|
||||
`);
|
||||
|
||||
// 3. 일일 근태 기록 테이블 생성
|
||||
console.log('📊 일일 근태 기록 테이블 생성 중...');
|
||||
await db.execute(`
|
||||
CREATE TABLE IF NOT EXISTS daily_attendance_records (
|
||||
id INT PRIMARY KEY AUTO_INCREMENT,
|
||||
@@ -66,7 +62,6 @@ async function setupAttendanceDB() {
|
||||
`);
|
||||
|
||||
// 4. 작업자 휴가 잔여 관리 테이블 생성
|
||||
console.log('📅 휴가 잔여 관리 테이블 생성 중...');
|
||||
await db.execute(`
|
||||
CREATE TABLE IF NOT EXISTS worker_vacation_balance (
|
||||
id INT PRIMARY KEY AUTO_INCREMENT,
|
||||
@@ -85,7 +80,6 @@ async function setupAttendanceDB() {
|
||||
`);
|
||||
|
||||
// 5. 기본 데이터 삽입
|
||||
console.log('📝 기본 데이터 삽입 중...');
|
||||
|
||||
// 근로 유형 기본 데이터
|
||||
await db.execute(`
|
||||
@@ -109,7 +103,6 @@ async function setupAttendanceDB() {
|
||||
`);
|
||||
|
||||
// 6. 휴가 전용 작업 유형 추가
|
||||
console.log('🏖️ 휴가 전용 작업 유형 추가 중...');
|
||||
await db.execute(`
|
||||
INSERT IGNORE INTO work_types (name, description, is_active) VALUES
|
||||
('휴가', '연차, 반차, 병가 등 휴가 처리용', TRUE)
|
||||
@@ -121,42 +114,32 @@ async function setupAttendanceDB() {
|
||||
ALTER TABLE daily_work_reports
|
||||
ADD COLUMN attendance_record_id INT NULL COMMENT '근태 기록 ID' AFTER updated_by
|
||||
`);
|
||||
console.log('✅ daily_work_reports 테이블에 attendance_record_id 컬럼 추가됨');
|
||||
} catch (error) {
|
||||
if (error.code !== 'ER_DUP_FIELDNAME') {
|
||||
console.log('⚠️ attendance_record_id 컬럼 추가 실패 (이미 존재할 수 있음):', error.message);
|
||||
} else {
|
||||
console.log('✅ attendance_record_id 컬럼이 이미 존재함');
|
||||
}
|
||||
}
|
||||
|
||||
// 8. 인덱스 추가
|
||||
try {
|
||||
await db.execute(`CREATE INDEX idx_attendance_record ON daily_work_reports(attendance_record_id)`);
|
||||
console.log('✅ attendance_record_id 인덱스 추가됨');
|
||||
} catch (error) {
|
||||
console.log('⚠️ 인덱스 추가 실패 (이미 존재할 수 있음):', error.message);
|
||||
}
|
||||
|
||||
try {
|
||||
await db.execute(`CREATE INDEX idx_daily_work_reports_worker_date ON daily_work_reports(worker_id, report_date)`);
|
||||
console.log('✅ worker_date 인덱스 추가됨');
|
||||
} catch (error) {
|
||||
console.log('⚠️ 인덱스 추가 실패 (이미 존재할 수 있음):', error.message);
|
||||
}
|
||||
|
||||
console.log('🎉 근태 관리 DB 설정 완료!');
|
||||
console.log('');
|
||||
console.log('📋 생성된 테이블:');
|
||||
console.log(' - work_attendance_types (근로 유형)');
|
||||
console.log(' - vacation_types (휴가 유형)');
|
||||
console.log(' - daily_attendance_records (일일 근태 기록)');
|
||||
console.log(' - worker_vacation_balance (휴가 잔여 관리)');
|
||||
console.log('');
|
||||
console.log('✅ 기본 데이터도 모두 삽입되었습니다.');
|
||||
|
||||
} catch (error) {
|
||||
console.error('❌ DB 설정 중 오류 발생:', error);
|
||||
console.error(' DB 설정 중 오류 발생:', error);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
@@ -165,11 +148,10 @@ async function setupAttendanceDB() {
|
||||
if (require.main === module) {
|
||||
setupAttendanceDB()
|
||||
.then(() => {
|
||||
console.log('✅ 설정 완료');
|
||||
process.exit(0);
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error('❌ 설정 실패:', error);
|
||||
console.error(' 설정 실패:', error);
|
||||
process.exit(1);
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user