From 951bebb3a8e2c165f7696abb6c38e9eb780e550c Mon Sep 17 00:00:00 2001 From: Brett Williams Date: Fri, 27 Oct 2023 02:35:21 -0500 Subject: [PATCH] Save database.db to upload dir, not code dir --- src/api/api_server.py | 2 +- src/render_queue.py | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/api/api_server.py b/src/api/api_server.py index 1eab8fb..b43d826 100755 --- a/src/api/api_server.py +++ b/src/api/api_server.py @@ -535,7 +535,7 @@ def start_server(background_thread=False): EngineManager.update_all_engines() # Set up the RenderQueue object - RenderQueue.start_queue() + RenderQueue.start_queue(database_directory=server.config['UPLOAD_FOLDER']) DistributedJobManager.start() thread = threading.Thread(target=eval_loop, kwargs={'delay_sec': config.get('queue_eval_seconds', 1)}, daemon=True) diff --git a/src/render_queue.py b/src/render_queue.py index 2a081b7..7419cf8 100755 --- a/src/render_queue.py +++ b/src/render_queue.py @@ -1,4 +1,5 @@ import logging +import os from datetime import datetime from sqlalchemy import create_engine @@ -18,10 +19,8 @@ class JobNotFoundError(Exception): class RenderQueue: - engine = create_engine('sqlite:///database.db') - Base.metadata.create_all(engine) - Session = sessionmaker(bind=engine) - session = Session() + engine = None + session = None job_queue = [] maximum_renderer_instances = {'blender': 1, 'aerender': 1, 'ffmpeg': 4} last_saved_counts = {} @@ -30,7 +29,11 @@ class RenderQueue: pass @classmethod - def start_queue(cls): + def start_queue(cls, database_directory): + if not cls.engine: + cls.engine = create_engine(f"sqlite:///{os.path.join(database_directory, 'database.db')}") + Base.metadata.create_all(cls.engine) + cls.session = sessionmaker(bind=cls.engine)() cls.load_state() @classmethod