feat: create database file if it does not exist
This commit is contained in:
14
server.ts
14
server.ts
@ -5,7 +5,19 @@ import { Database } from "bun:sqlite"; // bun:sqlite は非同期が基本
|
|||||||
|
|
||||||
const projectRoot = import.meta.dirname; // server.ts がプロジェクトルートにあると仮定
|
const projectRoot = import.meta.dirname; // server.ts がプロジェクトルートにあると仮定
|
||||||
|
|
||||||
const db = new Database(path.join(projectRoot, "data/podcast.db"));
|
const dbPath = path.join(projectRoot, "data/podcast.db");
|
||||||
|
|
||||||
|
// data ディレクトリが存在しない場合は作成
|
||||||
|
const dataDir = path.dirname(dbPath);
|
||||||
|
if (!fs.existsSync(dataDir)) {
|
||||||
|
fs.mkdirSync(dataDir, { recursive: true });
|
||||||
|
}
|
||||||
|
|
||||||
|
// データベースファイルが存在しない場合、空のファイルを作成し、スキーマを適用
|
||||||
|
const db = new Database(dbPath);
|
||||||
|
if (!fs.existsSync(dbPath)) {
|
||||||
|
fs.closeSync(fs.openSync(dbPath, "w")); // 空のDBファイルを作成
|
||||||
|
}
|
||||||
await db.exec(fs.readFileSync(path.join(projectRoot, "schema.sql"), "utf-8"));
|
await db.exec(fs.readFileSync(path.join(projectRoot, "schema.sql"), "utf-8"));
|
||||||
|
|
||||||
// 静的ファイルを提供するディレクトリのパス設定
|
// 静的ファイルを提供するディレクトリのパス設定
|
||||||
|
Reference in New Issue
Block a user