mirror of
https://github.com/clearml/clearml-server
synced 2025-01-31 19:06:55 +00:00
50 lines
1.4 KiB
Python
50 lines
1.4 KiB
Python
from pymongo.database import Database
|
|
|
|
from .utils import _drop_all_indices_from_collections
|
|
|
|
|
|
def migrate_auth(db: Database):
|
|
"""
|
|
Remove the old indices from the collections since
|
|
they may come out of sync with the latest changes
|
|
in the code and mongo libraries update
|
|
"""
|
|
_drop_all_indices_from_collections(db, ["user"])
|
|
|
|
|
|
def migrate_backend(db: Database):
|
|
"""
|
|
1. Sort tags and system tags
|
|
2. Remove the old indices from the collections since
|
|
they may come out of sync with the latest changes
|
|
in the code and mongo libraries update
|
|
"""
|
|
|
|
fields = ("tags", "system_tags")
|
|
query = {"$or": [{field: {"$exists": True, "$ne": []}} for field in fields]}
|
|
for collection_name in ("task", "model", "project", "queue"):
|
|
collection = db[collection_name]
|
|
for doc in collection.find(filter=query, projection=fields):
|
|
update = {
|
|
field: sorted(doc[field])
|
|
for field in fields
|
|
if doc.get(field)
|
|
}
|
|
if update:
|
|
collection.update_one({"_id": doc["_id"]}, {"$set": update})
|
|
|
|
_drop_all_indices_from_collections(
|
|
db,
|
|
[
|
|
"company",
|
|
"model",
|
|
"project",
|
|
"queue",
|
|
"settings",
|
|
"task",
|
|
"task__trash",
|
|
"user",
|
|
"versions",
|
|
],
|
|
)
|