diff --git a/docs/schema/index.md b/docs/schema/index.md index e846ec1..7045d7b 100644 --- a/docs/schema/index.md +++ b/docs/schema/index.md @@ -7,11 +7,14 @@ The PFS Target Database contains the following tables: - [filter_name](filter_name.md) - [fluxstd](fluxstd.md) - [input_catalog](input_catalog.md) +- [partner](partner.md) +- [pfs_arm](pfs_arm.md) - [proposal](proposal.md) - [proposal_category](proposal_category.md) - [sky](sky.md) - [target](target.md) - [target_type](target_type.md) +- [user_pointing](user_pointing.md) ## Schema information by tbls diff --git a/src/targetdb/utils.py b/src/targetdb/utils.py index ad8c2c1..3104758 100644 --- a/src/targetdb/utils.py +++ b/src/targetdb/utils.py @@ -529,6 +529,19 @@ def add_backref_values(df, db=None, table=None, upload_id=None): logger.error("proposal_category_name is not found in the DataFrame.") raise KeyError("proposal_category_name is not found in the DataFrame.") + if "partner_id" == df_tmp.columns: + logger.info( + "partner_id is found in the DataFrame. Skip back reference detection." + ) + else: + if "partner_name" in df_tmp.columns: + backref_tables.append("partner") + backref_keys.append("partner_name") + backref_check_keys.append("partner_id") + else: + logger.error("partner_name is not found in the DataFrame.") + raise KeyError("partner_name is not found in the DataFrame.") + # Join referenced values for i in range(len(backref_tables)): df_tmp = join_backref_values(