diff --git a/papermerge/search/cli/index_schema.py b/papermerge/search/cli/index_schema.py index c21576a6a..726ffbf93 100644 --- a/papermerge/search/cli/index_schema.py +++ b/papermerge/search/cli/index_schema.py @@ -12,12 +12,7 @@ @app.command(name="apply") def apply_cmd(dry_run: bool = False): """Apply schema fields""" - SEARCH_URL = os.environ.get("PAPERMERGE__SEARCH__URL") - if not SEARCH_URL: - raise ValueError("missing PAPERMERGE__SEARCH__URL") - - engine = create_engine(SEARCH_URL) - schema_manager = SchemaManager(engine, model=SearchIndex) + schema_manager = get_schema_manager() if dry_run: print_json(data=schema_manager.apply_dict_dump()) @@ -28,12 +23,7 @@ def apply_cmd(dry_run: bool = False): @app.command(name="delete") def delete_cmd(dry_run: bool = False): """Delete schema fields""" - SEARCH_URL = os.environ.get("PAPERMERGE__SEARCH__URL") - if not SEARCH_URL: - raise ValueError("missing PAPERMERGE__SEARCH__URL") - - engine = create_engine(SEARCH_URL) - schema_manager = SchemaManager(engine, model=SearchIndex) + schema_manager = get_schema_manager() if dry_run: print_json(data=schema_manager.delete_dict_dump()) @@ -44,14 +34,18 @@ def delete_cmd(dry_run: bool = False): @app.command(name="create") def create_cmd(dry_run: bool = False): """Create schema fields""" - SEARCH_URL = os.environ.get("PAPERMERGE__SEARCH__URL") - if not SEARCH_URL: - raise ValueError("missing PAPERMERGE__SEARCH__URL") - - engine = create_engine(SEARCH_URL) - schema_manager = SchemaManager(engine, model=SearchIndex) + schema_manager = get_schema_manager() if dry_run: print_json(data=schema_manager.create_dict_dump()) else: schema_manager.create() + + +def get_schema_manager(): + search_url = os.environ.get("PAPERMERGE__SEARCH__URL") + if not search_url: + raise ValueError("missing PAPERMERGE__SEARCH__URL") + + engine = create_engine(search_url) + return SchemaManager(engine, model=SearchIndex)