88
99app = typer .Typer (help = "Index Schema Management" )
1010
11- SEARCH_URL = os .environ .get ("PAPERMERGE__SEARCH__URL" )
12- if not SEARCH_URL :
13- raise ValueError ("missing PAPERMERGE__SEARCH__URL" )
14-
15- engine = create_engine (SEARCH_URL )
16- schema_manager = SchemaManager (engine , model = SearchIndex )
17-
1811
1912@app .command (name = "apply" )
2013def apply_cmd (dry_run : bool = False ):
2114 """Apply schema fields"""
15+ schema_manager = get_schema_manager ()
2216
2317 if dry_run :
2418 print_json (data = schema_manager .apply_dict_dump ())
@@ -29,6 +23,8 @@ def apply_cmd(dry_run: bool = False):
2923@app .command (name = "delete" )
3024def delete_cmd (dry_run : bool = False ):
3125 """Delete schema fields"""
26+ schema_manager = get_schema_manager ()
27+
3228 if dry_run :
3329 print_json (data = schema_manager .delete_dict_dump ())
3430 else :
@@ -38,7 +34,18 @@ def delete_cmd(dry_run: bool = False):
3834@app .command (name = "create" )
3935def create_cmd (dry_run : bool = False ):
4036 """Create schema fields"""
37+ schema_manager = get_schema_manager ()
38+
4139 if dry_run :
4240 print_json (data = schema_manager .create_dict_dump ())
4341 else :
4442 schema_manager .create ()
43+
44+
45+ def get_schema_manager ():
46+ search_url = os .environ .get ("PAPERMERGE__SEARCH__URL" )
47+ if not search_url :
48+ raise ValueError ("missing PAPERMERGE__SEARCH__URL" )
49+
50+ engine = create_engine (search_url )
51+ return SchemaManager (engine , model = SearchIndex )
0 commit comments