브라우징 자동화에만 집중
This commit is contained in:
107
backup/setupDatabase.js
Normal file
107
backup/setupDatabase.js
Normal file
@@ -0,0 +1,107 @@
|
||||
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 테이블이 성공적으로 생성되었습니다.");
|
||||
});
|
||||
|
||||
// 2. DOMAIN_ACCNT_LIST
|
||||
db.run(`
|
||||
CREATE TABLE DOMAIN_ACCNT_LIST (
|
||||
DOMAIN_SEQ_ID INTEGER NOT NULL,
|
||||
DOMAIN_ACCNT_ID TEXT NOT NULL,
|
||||
DOMAIN_ACCNT_PSWRD TEXT,
|
||||
LAST_ATNDNC_DTTM TEXT,
|
||||
MESRMNT_STRT_TM INTEGER DEFAULT 8,
|
||||
MESRMNT_END_TM INTEGER DEFAULT 20,
|
||||
MESRMNT_TM_INCLSN_PRBLTY INTEGER DEFAULT 95,
|
||||
ATNDNC_STRT_DTTM TEXT,
|
||||
ATNDNC_STTS_CD TEXT,
|
||||
DOMAIN_ACCNT_DESC TEXT,
|
||||
USE_YN TEXT DEFAULT 'Y',
|
||||
RGST_DTTM TEXT,
|
||||
USER_AGENT TEXT,
|
||||
PRIMARY KEY (DOMAIN_SEQ_ID, DOMAIN_ACCNT_ID)
|
||||
)
|
||||
`, (err) => {
|
||||
if (err) console.error("DOMAIN_ACCNT_LIST 테이블 생성 오류:", err.message);
|
||||
else console.log("DOMAIN_ACCNT_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 테이블이 성공적으로 생성되었습니다.");
|
||||
});
|
||||
|
||||
// 4. ATNDNC_LOG
|
||||
db.run(`
|
||||
CREATE TABLE ATNDNC_LOG (
|
||||
DOMAIN_SEQ_ID INTEGER NOT NULL,
|
||||
DOMAIN_ACCNT_ID TEXT NOT NULL,
|
||||
ATNDNC_DT TEXT NOT NULL,
|
||||
LOG_SEQ_ID INTEGER NOT NULL,
|
||||
LOG_MSG TEXT,
|
||||
LOG_DTTM TEXT,
|
||||
PRIMARY KEY (DOMAIN_SEQ_ID, DOMAIN_ACCNT_ID, ATNDNC_DT, LOG_SEQ_ID)
|
||||
)
|
||||
`, (err) => {
|
||||
if (err) console.error("ATNDNC_LOG 테이블 생성 오류:", err.message);
|
||||
else console.log("ATNDNC_LOG 테이블이 성공적으로 생성되었습니다.");
|
||||
});
|
||||
});
|
||||
|
||||
// 데이터베이스 연결 종료
|
||||
db.close((err) => {
|
||||
if (err) {
|
||||
console.error("데이터베이스 연결 종료 실패:", err.message);
|
||||
} else {
|
||||
console.log("데이터베이스 초기화 및 연결 종료가 완료되었습니다.");
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user