44
55import pandas as pd
66
7+ from bedrock_ge .gi .io_utils import convert_dtypes_object_to_string
78from bedrock_ge .gi .schemas import (
89 BedrockGIDatabase ,
910 InSituTestSchema ,
11+ LabTestSchema ,
1012 LocationSchema ,
1113 ProjectSchema ,
1214 SampleSchema ,
@@ -40,11 +42,13 @@ def merge_databases(
4042 project_dataframes = _filter_dataframes ([db .Project for db in dbs ])
4143 merged_project = pd .concat (project_dataframes , ignore_index = True )
4244 merged_project = merged_project .drop_duplicates ().reset_index (drop = True )
45+ merged_project = convert_dtypes_object_to_string (merged_project .convert_dtypes ())
4346 ProjectSchema .validate (merged_project )
4447
4548 location_dataframes = _filter_dataframes ([db .Location for db in dbs ])
4649 merged_location = pd .concat (location_dataframes , ignore_index = True )
4750 merged_location = merged_location .drop_duplicates ().reset_index (drop = True )
51+ merged_location = convert_dtypes_object_to_string (merged_location .convert_dtypes ())
4852 LocationSchema .validate (merged_location )
4953 check_foreign_key ("project_uid" , merged_project , merged_location )
5054
@@ -65,6 +69,7 @@ def merge_databases(
6569 )
6670 insitu_df = pd .concat (insitu_dataframes , ignore_index = True )
6771 insitu_df = insitu_df .drop_duplicates ().reset_index (drop = True )
72+ insitu_df = convert_dtypes_object_to_string (insitu_df .convert_dtypes ())
6873 InSituTestSchema .validate (insitu_df )
6974 check_foreign_key ("project_uid" , merged_project , insitu_df )
7075 check_foreign_key ("location_uid" , merged_location , insitu_df )
@@ -75,6 +80,7 @@ def merge_databases(
7580 if sample_dfs :
7681 merged_sample = pd .concat (sample_dfs , ignore_index = True )
7782 merged_sample = merged_sample .drop_duplicates ().reset_index (drop = True )
83+ merged_sample = convert_dtypes_object_to_string (merged_sample .convert_dtypes ())
7884 SampleSchema .validate (merged_sample )
7985 check_foreign_key ("project_uid" , merged_project , merged_sample )
8086
@@ -87,6 +93,8 @@ def merge_databases(
8793 ]
8894 lab_df = pd .concat (lab_dfs , ignore_index = True )
8995 lab_df = lab_df .drop_duplicates ().reset_index (drop = True )
96+ lab_df = convert_dtypes_object_to_string (lab_df .convert_dtypes ())
97+ LabTestSchema .validate (lab_df )
9098 check_foreign_key ("project_uid" , merged_project , lab_df )
9199 check_foreign_key ("sample_uid" , merged_sample , lab_df )
92100 merged_lab [lab_table ] = lab_df
@@ -100,6 +108,7 @@ def merge_databases(
100108 ]
101109 other_df = pd .concat (other_dfs , ignore_index = True )
102110 other_df = other_df .drop_duplicates ().reset_index (drop = True )
111+ other_df = convert_dtypes_object_to_string (other_df .convert_dtypes ())
103112 check_foreign_key ("project_uid" , merged_project , other_df )
104113 merged_other [other_table ] = other_df
105114
0 commit comments