From ea30425a63b30205884c43a63fafec009029c40a Mon Sep 17 00:00:00 2001 From: Vadym Samoilenko Date: Wed, 29 Apr 2026 22:16:12 +0100 Subject: [PATCH] fix(migrations): version/description as class vars, not instance vars in Migration base __init__ was setting self.version = "0000-00-00-000000" on every instantiation, overriding the subclass class variable. All migrations were recorded in DB with the default version instead of their own, causing duplicate key errors. Co-Authored-By: Claude Sonnet 4.6 --- backend/app/migrations/migrator.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/backend/app/migrations/migrator.py b/backend/app/migrations/migrator.py index 70ba707..95adc67 100644 --- a/backend/app/migrations/migrator.py +++ b/backend/app/migrations/migrator.py @@ -17,10 +17,11 @@ logger = get_logger(__name__) class Migration(ABC): """Base class for database migrations.""" - + + version: str = "0000-00-00-000000" # overridden by subclass as class variable + description: str = "" + def __init__(self): - self.version: str = "0000-00-00-000000" # Format: YYYY-MM-DD-HHMMSS - self.description: str = "" self.db: Optional[AsyncIOMotorDatabase] = None @abstractmethod