mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
feat(db): only reinit db if migrations occurred
This commit is contained in:
@ -87,9 +87,9 @@ class ApiDependencies:
|
|||||||
migration_2.register_post_callback(partial(migrate_embedded_workflows, logger=logger, image_files=image_files))
|
migration_2.register_post_callback(partial(migrate_embedded_workflows, logger=logger, image_files=image_files))
|
||||||
migrator.register_migration(migration_1)
|
migrator.register_migration(migration_1)
|
||||||
migrator.register_migration(migration_2)
|
migrator.register_migration(migration_2)
|
||||||
migrator.run_migrations()
|
did_migrate = migrator.run_migrations()
|
||||||
|
|
||||||
if not db.is_memory:
|
if not db.is_memory and did_migrate:
|
||||||
db.reinitialize()
|
db.reinitialize()
|
||||||
|
|
||||||
configuration = config
|
configuration = config
|
||||||
|
@ -168,7 +168,7 @@ class SQLiteMigrator:
|
|||||||
self._migrations.register(migration)
|
self._migrations.register(migration)
|
||||||
self._logger.debug(f"Registered migration {migration.from_version} -> {migration.to_version}")
|
self._logger.debug(f"Registered migration {migration.from_version} -> {migration.to_version}")
|
||||||
|
|
||||||
def run_migrations(self) -> None:
|
def run_migrations(self) -> bool:
|
||||||
"""Migrates the database to the latest version."""
|
"""Migrates the database to the latest version."""
|
||||||
with self._lock:
|
with self._lock:
|
||||||
# This throws if there is a problem.
|
# This throws if there is a problem.
|
||||||
@ -177,11 +177,11 @@ class SQLiteMigrator:
|
|||||||
|
|
||||||
if self._migrations.count == 0:
|
if self._migrations.count == 0:
|
||||||
self._logger.debug("No migrations registered")
|
self._logger.debug("No migrations registered")
|
||||||
return
|
return False
|
||||||
|
|
||||||
if self._get_current_version(self._cursor) == self._migrations.latest_version:
|
if self._get_current_version(self._cursor) == self._migrations.latest_version:
|
||||||
self._logger.debug("Database is up to date, no migrations to run")
|
self._logger.debug("Database is up to date, no migrations to run")
|
||||||
return
|
return False
|
||||||
|
|
||||||
self._logger.info("Database update needed")
|
self._logger.info("Database update needed")
|
||||||
|
|
||||||
@ -204,10 +204,9 @@ class SQLiteMigrator:
|
|||||||
else:
|
else:
|
||||||
# We are using a memory database. No special backup or special handling needed.
|
# We are using a memory database. No special backup or special handling needed.
|
||||||
self._run_migrations(self._cursor)
|
self._run_migrations(self._cursor)
|
||||||
return
|
|
||||||
|
|
||||||
self._logger.info("Database updated successfully")
|
self._logger.info("Database updated successfully")
|
||||||
return
|
return True
|
||||||
|
|
||||||
def _run_migrations(self, temp_db_cursor: sqlite3.Cursor) -> None:
|
def _run_migrations(self, temp_db_cursor: sqlite3.Cursor) -> None:
|
||||||
next_migration = self._migrations.get(from_version=self._get_current_version(temp_db_cursor))
|
next_migration = self._migrations.get(from_version=self._get_current_version(temp_db_cursor))
|
||||||
|
Reference in New Issue
Block a user