Fix database migration
This commit is contained in:
@ -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;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user