diff --git a/src/registrar/management/commands/transfer_transition_domains_to_domains.py b/src/registrar/management/commands/transfer_transition_domains_to_domains.py index d3f8d1aa9..7ed0ba009 100644 --- a/src/registrar/management/commands/transfer_transition_domains_to_domains.py +++ b/src/registrar/management/commands/transfer_transition_domains_to_domains.py @@ -640,8 +640,20 @@ class Command(BaseCommand): {TerminalColors.ENDC}""" ) + # First, save all Domain objects to the database Domain.objects.bulk_create(domains_to_create) - DomainInvitation.objects.bulk_create(domain_invitations_to_create) + #DomainInvitation.objects.bulk_create(domain_invitations_to_create) + + # Then, create DomainInvitation objects + for invitation in domain_invitations_to_create: + existing_domain = Domain.objects.filter(name=invitation.domain.name) + # Make sure the related Domain object is saved + if existing_domain.exists(): + invitation.domain = existing_domain.get() + else: + # Raise an err for now + raise Exception(f"Domain {existing_domain} wants to be added but doesn't exist in the DB") + invitation.save() # ====================================================== # ================= DOMAIN INFORMATION ================= diff --git a/src/registrar/management/commands/utility/extra_transition_domain_helper.py b/src/registrar/management/commands/utility/extra_transition_domain_helper.py index f00f72bc2..3e4b3e914 100644 --- a/src/registrar/management/commands/utility/extra_transition_domain_helper.py +++ b/src/registrar/management/commands/utility/extra_transition_domain_helper.py @@ -150,6 +150,7 @@ class LoadExtraTransitionDomain: raise ValueError("No TransitionDomain objects exist.") updated_transition_domains = [] + failed_transition_domains = [] for transition_domain in all_transition_domains: domain_name = transition_domain.domain_name.upper() updated_transition_domain = transition_domain @@ -174,33 +175,47 @@ class LoadExtraTransitionDomain: domain_name, transition_domain ) + # Check if the instance has changed before saving + #if updated_transition_domain.__dict__ != transition_domain.__dict__: updated_transition_domain.save() + updated_transition_domains.append(updated_transition_domain) + self.parse_logs.display_logs_by_domain_name(domain_name) logger.info( f"{TerminalColors.OKCYAN}" f"Successfully updated {domain_name}" f"{TerminalColors.ENDC}" ) - updated_transition_domains.append(updated_transition_domain) - # If we run into an exception on this domain, # Just skip over it and log that it happened. except Exception as err: logger.debug(err) - logger.info( + logger.error( f"{TerminalColors.FAIL}" f"Exception encountered on {domain_name}. Could not update." f"{TerminalColors.ENDC}" ) - raise err - logger.info( - f"""{TerminalColors.OKGREEN} - ============= FINISHED =============== - updated {len(updated_transition_domains)} transition domain entries - {TerminalColors.ENDC} - """ - ) + failed_transition_domains.append(domain_name) + + failed_count = len(failed_transition_domains) + if failed_count == 0: + logger.info( + f"""{TerminalColors.OKGREEN} + ============= FINISHED =============== + Updated {len(updated_transition_domains)} transition domain entries + {TerminalColors.ENDC} + """ + ) + else: + logger.error( + f"""{TerminalColors.FAIL} + ============= FINISHED WITH ERRORS =============== + Updated {len(updated_transition_domains)} transition domain entries, + Failed to update {failed_count} transition domain entries + {TerminalColors.ENDC} + """ + ) def parse_creation_expiration_data(self, domain_name, transition_domain): """Grabs expiration_date from the parsed files and associates it