mirror of
https://github.com/home-assistant/core.git
synced 2025-04-26 18:27:51 +00:00
Improve recorder migration logging (#132006)
This commit is contained in:
parent
a0541c7fe6
commit
c54eed3607
@ -313,7 +313,7 @@ def _migrate_schema(
|
|||||||
|
|
||||||
for version in range(current_version, end_version):
|
for version in range(current_version, end_version):
|
||||||
new_version = version + 1
|
new_version = version + 1
|
||||||
_LOGGER.info("Upgrading recorder db schema to version %s", new_version)
|
_LOGGER.warning("Upgrading recorder db schema to version %s", new_version)
|
||||||
_apply_update(instance, hass, engine, session_maker, new_version, start_version)
|
_apply_update(instance, hass, engine, session_maker, new_version, start_version)
|
||||||
with session_scope(session=session_maker()) as session:
|
with session_scope(session=session_maker()) as session:
|
||||||
session.add(SchemaChanges(schema_version=new_version))
|
session.add(SchemaChanges(schema_version=new_version))
|
||||||
@ -2326,9 +2326,15 @@ class BaseMigration(ABC):
|
|||||||
"""
|
"""
|
||||||
if self.schema_version < self.required_schema_version:
|
if self.schema_version < self.required_schema_version:
|
||||||
# Schema is too old, we must have to migrate
|
# Schema is too old, we must have to migrate
|
||||||
|
_LOGGER.info(
|
||||||
|
"Data migration '%s' needed, schema too old", self.migration_id
|
||||||
|
)
|
||||||
return True
|
return True
|
||||||
if self.migration_changes.get(self.migration_id, -1) >= self.migration_version:
|
if self.migration_changes.get(self.migration_id, -1) >= self.migration_version:
|
||||||
# The migration changes table indicates that the migration has been done
|
# The migration changes table indicates that the migration has been done
|
||||||
|
_LOGGER.debug(
|
||||||
|
"Data migration '%s' not needed, already completed", self.migration_id
|
||||||
|
)
|
||||||
return False
|
return False
|
||||||
# We do not know if the migration is done from the
|
# We do not know if the migration is done from the
|
||||||
# migration changes table so we must check the index and data
|
# migration changes table so we must check the index and data
|
||||||
@ -2338,10 +2344,19 @@ class BaseMigration(ABC):
|
|||||||
and get_index_by_name(session, self.index_to_drop[0], self.index_to_drop[1])
|
and get_index_by_name(session, self.index_to_drop[0], self.index_to_drop[1])
|
||||||
is not None
|
is not None
|
||||||
):
|
):
|
||||||
|
_LOGGER.info(
|
||||||
|
"Data migration '%s' needed, index to drop still exists",
|
||||||
|
self.migration_id,
|
||||||
|
)
|
||||||
return True
|
return True
|
||||||
needs_migrate = self.needs_migrate_impl(instance, session)
|
needs_migrate = self.needs_migrate_impl(instance, session)
|
||||||
if needs_migrate.migration_done:
|
if needs_migrate.migration_done:
|
||||||
_mark_migration_done(session, self.__class__)
|
_mark_migration_done(session, self.__class__)
|
||||||
|
_LOGGER.info(
|
||||||
|
"Data migration '%s' needed: %s",
|
||||||
|
self.migration_id,
|
||||||
|
needs_migrate.needs_migrate,
|
||||||
|
)
|
||||||
return needs_migrate.needs_migrate
|
return needs_migrate.needs_migrate
|
||||||
|
|
||||||
|
|
||||||
@ -2354,10 +2369,17 @@ class BaseOffLineMigration(BaseMigration):
|
|||||||
"""Migrate all data."""
|
"""Migrate all data."""
|
||||||
with session_scope(session=session_maker()) as session:
|
with session_scope(session=session_maker()) as session:
|
||||||
if not self.needs_migrate(instance, session):
|
if not self.needs_migrate(instance, session):
|
||||||
|
_LOGGER.debug("Migration not needed for '%s'", self.migration_id)
|
||||||
self.migration_done(instance, session)
|
self.migration_done(instance, session)
|
||||||
return
|
return
|
||||||
|
_LOGGER.warning(
|
||||||
|
"The database is about to do data migration step '%s', %s",
|
||||||
|
self.migration_id,
|
||||||
|
MIGRATION_NOTE_OFFLINE,
|
||||||
|
)
|
||||||
while not self.migrate_data(instance):
|
while not self.migrate_data(instance):
|
||||||
pass
|
pass
|
||||||
|
_LOGGER.warning("Data migration step '%s' completed", self.migration_id)
|
||||||
|
|
||||||
@database_job_retry_wrapper_method("migrate data", 10)
|
@database_job_retry_wrapper_method("migrate data", 10)
|
||||||
def migrate_data(self, instance: Recorder) -> bool:
|
def migrate_data(self, instance: Recorder) -> bool:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user