Skip to content

Add a migration param to config class for automatic database migration. #58

@hakancelikdev

Description

@hakancelikdev
class PyPIPackageModel(DbmModel):
    username: str

    class Config:
        table_name = "usernames"
        unique_together = ("username",)
class PyPIPackageModel(DbmModel):
    user: str

    class Config:
        table_name = "usernames"
        unique_together = ("user",)
        migration = True
    def set_database_header(self):
        ann = get_obj_annotations(obj=self.model)
        db_headers = bytes(str({key: DATABASE_HEADER_MAPPING[value] for key, value in ann.items()}), "utf-8")

        with self as db:
            database_header: bytes | None
            if (database_header := db.get(DATABASE_HEADER_NAME, None)) is None or (database_header is not None and self.model._config.migration is True):
                db[DATABASE_HEADER_NAME] = db_headers

            else:
                # TODO: migrations
                assert database_header == db_headers, f"Database headers are not equal: '{database_header}' != '{db_headers}'"  # type: ignore[str-bytes-safe]  # noqa: E501

        setattr(self, DATABASE_HEADER_NAME, ann)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions