diff --git a/backend/src/module/core/sub_thread.py b/backend/src/module/core/sub_thread.py index 649a6884..86cc6c6f 100644 --- a/backend/src/module/core/sub_thread.py +++ b/backend/src/module/core/sub_thread.py @@ -2,7 +2,6 @@ import threading import time from module.conf import settings -from module.database import Database from module.downloader import DownloadClient from module.manager import Renamer, eps_complete from module.notification import PostNotification diff --git a/backend/src/module/database/bangumi.py b/backend/src/module/database/bangumi.py index 3417c1cd..1a758e1c 100644 --- a/backend/src/module/database/bangumi.py +++ b/backend/src/module/database/bangumi.py @@ -20,6 +20,7 @@ class BangumiDatabase: def add_all(self, datas: list[Bangumi]): self.session.add_all(datas) + self.session.commit() logger.debug(f"[Database] Insert {len(datas)} bangumi into database.") def update(self, data: Bangumi) -> bool: diff --git a/backend/src/module/database/combine.py b/backend/src/module/database/combine.py index 805f165e..41550134 100644 --- a/backend/src/module/database/combine.py +++ b/backend/src/module/database/combine.py @@ -6,6 +6,8 @@ from .bangumi import BangumiDatabase from .user import UserDatabase from .engine import engine as e +from module.models import User, Bangumi + class Database(Session): def __init__(self, engine=e): @@ -24,8 +26,19 @@ class Database(Session): def migrate(self): # Run migration online - from alembic import command - from alembic.config import Config + bangumi_data = self.bangumi.search_all() + user_data = self.exec("SELECT * FROM user").all() + readd_bangumi = [] + for bangumi in bangumi_data: + dict_data = bangumi.dict() + del dict_data["id"] + readd_bangumi.append(Bangumi(**dict_data)) + self.drop_table() + self.create_table() + self.commit() + bangumi_data = self.bangumi.search_all() + self.bangumi.add_all(readd_bangumi) + self.add(User(**user_data[0])) + self.commit() + - alembic_cfg = Config("alembic.ini") - command.upgrade(alembic_cfg, "head") diff --git a/backend/src/module/database/rss.py b/backend/src/module/database/rss.py index cd28e3d9..ac75a282 100644 --- a/backend/src/module/database/rss.py +++ b/backend/src/module/database/rss.py @@ -24,6 +24,10 @@ class RSSDatabase: self.session.commit() self.session.refresh(data) + def add_all(self, data: list[RSSItem]): + for item in data: + self.add(item) + def update(self, _id: int, data: RSSUpdate): # Check if exists statement = select(RSSItem).where(RSSItem.id == _id) diff --git a/backend/src/module/rss/engine.py b/backend/src/module/rss/engine.py index 9e82a19b..8de5bf41 100644 --- a/backend/src/module/rss/engine.py +++ b/backend/src/module/rss/engine.py @@ -46,7 +46,6 @@ class RSSEngine(Database): _filter = matched.filter.replace(",", "|") if not re.search(_filter, torrent.name, re.IGNORECASE): torrent.bangumi_id = matched.id - torrent.save_path = matched.save_path return matched return None diff --git a/backend/src/module/update/startup.py b/backend/src/module/update/startup.py index 888bf9ad..b2a97e2f 100644 --- a/backend/src/module/update/startup.py +++ b/backend/src/module/update/startup.py @@ -16,7 +16,7 @@ def start_up(first_run): engine.add_rss(settings.rss_link, name="Mikan RSS", combine=True) elif main_rss.url != settings.rss_link: main_rss.url = settings.rss_link - engine.rss.update(main_rss) + engine.rss.update(1, main_rss) if __name__ == "__main__":