from sqlalchemy import create_engine, Column, String, Integer from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker from news_scraper.models.article import Article Base = declarative_base() class Database: def __init__(self, db_url): self.engine = create_engine(db_url) self.Session = sessionmaker(bind=self.engine) self.create_tables() def create_tables(self): Base.metadata.create_all(self.engine) def save_article(self, article: Article): session = self.Session() db_article = Article( url=article.url, title=article.title, description=article.description, score=article.score, ticker=article.ticker, ) session.add(db_article) session.commit() session.close() def close_connection(self): self.engine.dispose()