Fix database migration

This commit is contained in:
2025-06-07 09:05:41 +09:00
parent 986743949f
commit e43a35f64a

View File

@ -17,21 +17,54 @@ function initializeDatabase(): Database {
const db = new Database(config.paths.dbPath); const db = new Database(config.paths.dbPath);
// Ensure schema is set up // Ensure schema is set up - use the complete schema
db.exec(`CREATE TABLE IF NOT EXISTS processed_feed_items ( db.exec(`CREATE TABLE IF NOT EXISTS feeds (
id TEXT PRIMARY KEY,
url TEXT NOT NULL UNIQUE,
title TEXT,
description TEXT,
last_updated TEXT,
created_at TEXT NOT NULL,
active BOOLEAN DEFAULT 1
);
CREATE TABLE IF NOT EXISTS articles (
id TEXT PRIMARY KEY,
feed_id TEXT NOT NULL,
title TEXT NOT NULL,
link TEXT NOT NULL UNIQUE,
description TEXT,
content TEXT,
pub_date TEXT NOT NULL,
discovered_at TEXT NOT NULL,
processed BOOLEAN DEFAULT 0,
FOREIGN KEY(feed_id) REFERENCES feeds(id)
);
CREATE TABLE IF NOT EXISTS episodes (
id TEXT PRIMARY KEY,
article_id TEXT NOT NULL,
title TEXT NOT NULL,
description TEXT,
audio_path TEXT NOT NULL,
duration INTEGER,
file_size INTEGER,
created_at TEXT NOT NULL,
FOREIGN KEY(article_id) REFERENCES articles(id)
);
CREATE TABLE IF NOT EXISTS processed_feed_items (
feed_url TEXT NOT NULL, feed_url TEXT NOT NULL,
item_id TEXT NOT NULL, item_id TEXT NOT NULL,
processed_at TEXT NOT NULL, processed_at TEXT NOT NULL,
PRIMARY KEY(feed_url, item_id) PRIMARY KEY(feed_url, item_id)
); );
CREATE TABLE IF NOT EXISTS episodes ( CREATE INDEX IF NOT EXISTS idx_articles_feed_id ON articles(feed_id);
id TEXT PRIMARY KEY, CREATE INDEX IF NOT EXISTS idx_articles_pub_date ON articles(pub_date);
title TEXT NOT NULL, CREATE INDEX IF NOT EXISTS idx_articles_processed ON articles(processed);
pubDate TEXT NOT NULL, CREATE INDEX IF NOT EXISTS idx_episodes_article_id ON episodes(article_id);
audioPath TEXT NOT NULL, CREATE INDEX IF NOT EXISTS idx_feeds_active ON feeds(active);`);
sourceLink TEXT NOT NULL
);`);
return db; return db;
} }