mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
fix(config): edge cases in models.yaml migration
When running the configurator, the `legacy_models_conf_path` was stripped when saving the config file. Then the migration logic didn't fire correctly, and the custom models.yaml paths weren't migrated into the db. - Rework the logic to migrate this path by adding it to the config object as a normal field that is not excluded from serialization. - Rearrange the models.yaml migration logic to remove the legacy path after migrating, then write the config file. This way, the legacy path doesn't stick around. - Move the schema version into the config object. - Back up the config file before attempting migration. - Add tests to cover this edge case
This commit is contained in:
@ -3,6 +3,8 @@ from typing import Literal, get_args, get_type_hints
|
||||
|
||||
from invokeai.app.services.config.config_default import InvokeAIAppConfig
|
||||
|
||||
_excluded = {"schema_version", "legacy_models_yaml_path"}
|
||||
|
||||
|
||||
def generate_config_docstrings() -> str:
|
||||
"""Helper function for mkdocs. Generates a docstring for the InvokeAIAppConfig class.
|
||||
@ -20,7 +22,7 @@ def generate_config_docstrings() -> str:
|
||||
type_hints = get_type_hints(InvokeAIAppConfig)
|
||||
|
||||
for k, v in InvokeAIAppConfig.model_fields.items():
|
||||
if v.exclude:
|
||||
if v.exclude or k in _excluded:
|
||||
continue
|
||||
field_type = type_hints.get(k)
|
||||
extra = ""
|
||||
|
Reference in New Issue
Block a user