Browse Source

Fix missing sliced_for_model migration (Issue #211)

The sliced_for_model column was added to the PrintArchive model for
model-based queue assignment but the database migration was missing.

This caused upgrades from 0.1.6b11 to 0.1.6 to fail with:
"no such column: print_archives.sliced_for_model"

Users' data was not deleted - just inaccessible due to query failures.
maziggy 3 months ago
parent
commit
9b27b0a503
1 changed files with 35 additions and 0 deletions
  1. 35 0
      backend/app/core/database.py

+ 35 - 0
backend/app/core/database.py

@@ -34,6 +34,7 @@ async def get_db() -> AsyncSession:
 async def init_db():
 async def init_db():
     # Import models to register them with SQLAlchemy
     # Import models to register them with SQLAlchemy
     from backend.app.models import (  # noqa: F401
     from backend.app.models import (  # noqa: F401
+        ams_history,
         api_key,
         api_key,
         archive,
         archive,
         external_link,
         external_link,
@@ -45,11 +46,13 @@ async def init_db():
         maintenance,
         maintenance,
         notification,
         notification,
         notification_template,
         notification_template,
+        pending_upload,
         print_queue,
         print_queue,
         printer,
         printer,
         project,
         project,
         project_bom,
         project_bom,
         settings,
         settings,
+        slot_preset,
         smart_plug,
         smart_plug,
         user,
         user,
     )
     )
@@ -959,6 +962,38 @@ async def run_migrations(conn):
     except Exception:
     except Exception:
         pass
         pass
 
 
+    # Migration: Add queue notification event columns to notification_providers
+    try:
+        await conn.execute(text("ALTER TABLE notification_providers ADD COLUMN on_queue_job_added BOOLEAN DEFAULT 0"))
+    except Exception:
+        pass
+    try:
+        await conn.execute(
+            text("ALTER TABLE notification_providers ADD COLUMN on_queue_job_assigned BOOLEAN DEFAULT 0")
+        )
+    except Exception:
+        pass
+    try:
+        await conn.execute(text("ALTER TABLE notification_providers ADD COLUMN on_queue_job_started BOOLEAN DEFAULT 0"))
+    except Exception:
+        pass
+    try:
+        await conn.execute(text("ALTER TABLE notification_providers ADD COLUMN on_queue_job_waiting BOOLEAN DEFAULT 1"))
+    except Exception:
+        pass
+    try:
+        await conn.execute(text("ALTER TABLE notification_providers ADD COLUMN on_queue_job_skipped BOOLEAN DEFAULT 1"))
+    except Exception:
+        pass
+    try:
+        await conn.execute(text("ALTER TABLE notification_providers ADD COLUMN on_queue_job_failed BOOLEAN DEFAULT 1"))
+    except Exception:
+        pass
+    try:
+        await conn.execute(text("ALTER TABLE notification_providers ADD COLUMN on_queue_completed BOOLEAN DEFAULT 0"))
+    except Exception:
+        pass
+
 
 
 async def seed_notification_templates():
 async def seed_notification_templates():
     """Seed default notification templates if they don't exist."""
     """Seed default notification templates if they don't exist."""