files
simple-auto_browsing/setupDatabase.js
2025-10-14 17:58:58 +09:00

69 lines
2.3 KiB
JavaScript

const fs = require('fs'); // 1. 파일 시스템 모듈 가져오기
const sqlite3 = require('sqlite3').verbose();
const path = require('path');
const dbPath = path.resolve(__dirname, 'data', 'database.sqlite');
// 2. 데이터베이스 파일이 이미 존재하는지 확인
if (fs.existsSync(dbPath)) {
console.log(`데이터베이스 파일이 이미 존재합니다. 초기화를 건너뜁니다: ${dbPath}`);
// 파일이 있으면 스크립트를 여기서 종료
return;
}
// --- 아래 코드는 파일이 없을 때만 실행됩니다 ---
console.log("새로운 데이터베이스 파일을 생성하고 초기화를 시작합니다...");
const db = new sqlite3.Database(dbPath, (err) => {
if (err) {
console.error("데이터베이스 연결 실패:", err.message);
} else {
console.log(`SQLite 데이터베이스에 성공적으로 연결되었습니다: ${dbPath}`);
}
});
// 테이블 생성을 순차적으로 실행
db.serialize(() => {
console.log("테이블 생성을 시작합니다...");
// 1. DOMAIN_LIST
db.run(`
CREATE TABLE DOMAIN_LIST (
DOMAIN_SEQ_ID INTEGER PRIMARY KEY,
DOMAIN_NM TEXT,
DOMAIN_ADDRS TEXT,
DOMAIN_DESC TEXT,
USE_YN TEXT DEFAULT 'Y',
RGST_DTTM TEXT
)
`, (err) => {
if (err) console.error("DOMAIN_LIST 테이블 생성 오류:", err.message);
else console.log("DOMAIN_LIST 테이블이 성공적으로 생성되었습니다.");
});
// 3. ACT_LIST
db.run(`
CREATE TABLE ACT_LIST (
DOMAIN_SEQ_ID INTEGER NOT NULL,
ACT_ORD INTEGER NOT NULL,
ACT_TYP_CD TEXT,
ACT_DTL_JSON TEXT CHECK(json_valid(ACT_DTL_JSON)),
RETRY_YN TEXT,
RGST_DTTM TEXT,
PRIMARY KEY (DOMAIN_SEQ_ID, ACT_ORD)
)
`, (err) => {
if (err) console.error("ACT_LIST 테이블 생성 오류:", err.message);
else console.log("ACT_LIST 테이블이 성공적으로 생성되었습니다.");
});
});
// 데이터베이스 연결 종료
db.close((err) => {
if (err) {
console.error("데이터베이스 연결 종료 실패:", err.message);
} else {
console.log("데이터베이스 초기화 및 연결 종료가 완료되었습니다.");
}
});