Fix database migration
This commit is contained in:
		@@ -17,21 +17,54 @@ function initializeDatabase(): Database {
 | 
			
		||||
  
 | 
			
		||||
  const db = new Database(config.paths.dbPath);
 | 
			
		||||
  
 | 
			
		||||
  // Ensure schema is set up
 | 
			
		||||
  db.exec(`CREATE TABLE IF NOT EXISTS processed_feed_items (
 | 
			
		||||
  // Ensure schema is set up - use the complete schema
 | 
			
		||||
  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,
 | 
			
		||||
    item_id   TEXT NOT NULL,
 | 
			
		||||
    processed_at TEXT NOT NULL,
 | 
			
		||||
    PRIMARY KEY(feed_url, item_id)
 | 
			
		||||
  );
 | 
			
		||||
 | 
			
		||||
  CREATE TABLE IF NOT EXISTS episodes (
 | 
			
		||||
    id TEXT PRIMARY KEY,
 | 
			
		||||
    title TEXT NOT NULL,
 | 
			
		||||
    pubDate TEXT NOT NULL,
 | 
			
		||||
    audioPath TEXT NOT NULL,
 | 
			
		||||
    sourceLink TEXT NOT NULL
 | 
			
		||||
  );`);
 | 
			
		||||
  CREATE INDEX IF NOT EXISTS idx_articles_feed_id ON articles(feed_id);
 | 
			
		||||
  CREATE INDEX IF NOT EXISTS idx_articles_pub_date ON articles(pub_date);
 | 
			
		||||
  CREATE INDEX IF NOT EXISTS idx_articles_processed ON articles(processed);
 | 
			
		||||
  CREATE INDEX IF NOT EXISTS idx_episodes_article_id ON episodes(article_id);
 | 
			
		||||
  CREATE INDEX IF NOT EXISTS idx_feeds_active ON feeds(active);`);
 | 
			
		||||
  
 | 
			
		||||
  return db;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user