Add complete Jaryo File Manager with Synology NAS deployment support
This commit is contained in:
73
scripts/init-database.js
Normal file
73
scripts/init-database.js
Normal file
@@ -0,0 +1,73 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const sqlite3 = require('sqlite3').verbose();
|
||||
|
||||
// 데이터베이스 파일 경로
|
||||
const dbPath = path.join(__dirname, '../database/jaryo.db');
|
||||
const schemaPath = path.join(__dirname, '../database/schema.sql');
|
||||
|
||||
// database 폴더가 없으면 생성
|
||||
const dbDir = path.dirname(dbPath);
|
||||
if (!fs.existsSync(dbDir)) {
|
||||
fs.mkdirSync(dbDir, { recursive: true });
|
||||
}
|
||||
|
||||
// uploads 폴더도 생성
|
||||
const uploadsDir = path.join(__dirname, '../uploads');
|
||||
if (!fs.existsSync(uploadsDir)) {
|
||||
fs.mkdirSync(uploadsDir, { recursive: true });
|
||||
}
|
||||
|
||||
console.log('🔧 SQLite 데이터베이스 초기화 시작...');
|
||||
|
||||
// 데이터베이스 연결
|
||||
const db = new sqlite3.Database(dbPath, (err) => {
|
||||
if (err) {
|
||||
console.error('❌ 데이터베이스 연결 오류:', err.message);
|
||||
return;
|
||||
}
|
||||
console.log('✅ SQLite 데이터베이스 연결 성공');
|
||||
});
|
||||
|
||||
// 스키마 파일 읽기 및 실행
|
||||
fs.readFile(schemaPath, 'utf8', (err, schema) => {
|
||||
if (err) {
|
||||
console.error('❌ 스키마 파일 읽기 오류:', err.message);
|
||||
return;
|
||||
}
|
||||
|
||||
// 여러 SQL 문을 분리하여 실행
|
||||
const statements = schema.split(';').filter(stmt => stmt.trim().length > 0);
|
||||
|
||||
db.serialize(() => {
|
||||
statements.forEach((statement, index) => {
|
||||
if (statement.trim()) {
|
||||
db.run(statement + ';', (err) => {
|
||||
if (err) {
|
||||
console.error(`❌ SQL 실행 오류 (${index + 1}):`, err.message);
|
||||
console.error('실행하려던 SQL:', statement);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
console.log('✅ 데이터베이스 스키마 생성 완료');
|
||||
|
||||
// 데이터 확인
|
||||
db.all('SELECT COUNT(*) as count FROM files', (err, rows) => {
|
||||
if (err) {
|
||||
console.error('❌ 데이터 확인 오류:', err.message);
|
||||
} else {
|
||||
console.log(`📊 파일 테이블 레코드 수: ${rows[0].count}`);
|
||||
}
|
||||
|
||||
db.close((err) => {
|
||||
if (err) {
|
||||
console.error('❌ 데이터베이스 종료 오류:', err.message);
|
||||
} else {
|
||||
console.log('🏁 데이터베이스 초기화 완료');
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
Reference in New Issue
Block a user