Source code for sni.esi.migration
"""
Database migrations
"""
from sni.db.migration import (
ensure_minimum_version,
finalize_migration,
set_if_not_exist,
start_migration,
)
from .models import EsiAccessToken, EsiRefreshToken
[docs]def migrate() -> None:
"""
Runs migration tasks
"""
migrate_esi_access_token()
migrate_esi_refresh_token()
[docs]def migrate_esi_access_token() -> None:
"""
Run migration tasks on the ``esi_access_token`` connection.
"""
collection = start_migration(EsiAccessToken)
if collection is None:
return
# v0 to v1
# Set _version field to 1
set_if_not_exist(collection, "_version", 1)
# v1 to v2
# Sets the valid field to True
collection.delete_many({"refresh_token": {"$exists": False}})
ensure_minimum_version(collection, 2)
# Finally
finalize_migration(EsiAccessToken)
[docs]def migrate_esi_refresh_token() -> None:
"""
Run migration tasks on the ``esi_refresh_token`` collection.
"""
collection = start_migration(EsiRefreshToken)
if collection is None:
return
# v0 to v1
# Set _version field to 1
set_if_not_exist(collection, "_version", 1)
# v1 to v2
# Sets the valid field to True
set_if_not_exist(collection, "valid", True, version=1)
ensure_minimum_version(collection, 2)
# Finally
finalize_migration(EsiRefreshToken)