11import json
2+ import logging
23from abc import ABC
34from datetime import date , datetime
45from pathlib import Path
1819 StaffRolePermission ,
1920)
2021
22+ _logger = logging .getLogger ("iam-staff-data-loader" )
23+
2124
2225class DataLoaderBase (ABC ):
2326 data_models = (
@@ -67,8 +70,11 @@ async def seed_models_from_dir(
6770 data_dir : Path ,
6871 ) -> None :
6972 if not data_dir .exists () or not data_dir .is_dir ():
73+ _logger .info ("Skipping missing data directory: %s" , data_dir )
7074 return
7175
76+ _logger .info ("Loading data from %s" , data_dir )
77+
7278 for model in self .data_models :
7379 rows = self .load_dataset (model , data_dir )
7480 await self .seed_if_empty (session , model , rows )
@@ -86,6 +92,7 @@ async def seed_if_empty(
8692 if not rows :
8793 return
8894
95+ _logger .info ("Seeding %s with %s rows" , model .__tablename__ , len (rows ))
8996 await session .execute (insert (model ), self .coerce_rows_for_model (model , rows ))
9097
9198 def coerce_rows_for_model (
@@ -134,10 +141,12 @@ async def run(cls) -> None:
134141 loader = cls ()
135142 session_factory = loader .create_session_factory ()
136143
144+ _logger .info ("Starting IAM staff data loader" )
137145 async with session_factory () as session :
138146 await loader .load_data (session )
139147 await loader .load_fallback_data (session )
140148 await session .commit ()
149+ _logger .info ("Completed IAM staff data loader" )
141150
142151 async def load_data (self , session : AsyncSession ) -> None :
143152 await self .seed_models_from_dir (session , self .get_mounted_data_dir ())
0 commit comments