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