From 6f9922f3cac2084b8a9c6968dcb82663eed9a0dd Mon Sep 17 00:00:00 2001 From: Hannah Cushman Garland Date: Thu, 30 Nov 2023 09:11:37 -0600 Subject: [PATCH] Reset ID sequences at end of legacy import_data script --- camp_fin/management/commands/import_data.py | 8 +++ .../commands/sql/reset_sequence.sql | 51 +++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 camp_fin/management/commands/sql/reset_sequence.sql diff --git a/camp_fin/management/commands/import_data.py b/camp_fin/management/commands/import_data.py index 5c74f1b..d8888f8 100644 --- a/camp_fin/management/commands/import_data.py +++ b/camp_fin/management/commands/import_data.py @@ -13,6 +13,7 @@ from django.core.management.base import BaseCommand, CommandError from django.conf import settings +from django.db import connection as django_connection from django.utils.text import slugify from .table_mappers import * @@ -158,6 +159,13 @@ def handle(self, *args, **options): self.makeTransactionAggregates() self.stdout.write(self.style.SUCCESS("Made transaction aggregate views")) + file_path = os.path.join(os.path.dirname(__file__), "sql", "reset_sequence.sql") + + with open(file_path, "r") as statement, django_connection.cursor() as c: + c.execute(statement.read()) + + self.stdout.write(self.style.SUCCESS("Reset model ID sequences")) + self.stdout.write( self.style.SUCCESS("Import complete!".format(self.entity_type)) ) diff --git a/camp_fin/management/commands/sql/reset_sequence.sql b/camp_fin/management/commands/sql/reset_sequence.sql new file mode 100644 index 0000000..cb0eb1d --- /dev/null +++ b/camp_fin/management/commands/sql/reset_sequence.sql @@ -0,0 +1,51 @@ +BEGIN; +SELECT setval(pg_get_serial_sequence('"camp_fin_candidate"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_candidate"; +SELECT setval(pg_get_serial_sequence('"camp_fin_pac"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_pac"; +SELECT setval(pg_get_serial_sequence('"camp_fin_campaign"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_campaign"; +SELECT setval(pg_get_serial_sequence('"camp_fin_race"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_race"; +SELECT setval(pg_get_serial_sequence('"camp_fin_racegroup"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_racegroup"; +SELECT setval(pg_get_serial_sequence('"camp_fin_officetype"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_officetype"; +SELECT setval(pg_get_serial_sequence('"camp_fin_office"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_office"; +SELECT setval(pg_get_serial_sequence('"camp_fin_district"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_district"; +SELECT setval(pg_get_serial_sequence('"camp_fin_county"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_county"; +SELECT setval(pg_get_serial_sequence('"camp_fin_politicalparty"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_politicalparty"; +SELECT setval(pg_get_serial_sequence('"camp_fin_transaction"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_transaction"; +SELECT setval(pg_get_serial_sequence('"camp_fin_transactiontype"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_transactiontype"; +SELECT setval(pg_get_serial_sequence('"camp_fin_loan"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_loan"; +SELECT setval(pg_get_serial_sequence('"camp_fin_loantransaction"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_loantransaction"; +SELECT setval(pg_get_serial_sequence('"camp_fin_loantransactiontype"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_loantransactiontype"; +SELECT setval(pg_get_serial_sequence('"camp_fin_specialevent"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_specialevent"; +SELECT setval(pg_get_serial_sequence('"camp_fin_filing"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_filing"; +SELECT setval(pg_get_serial_sequence('"camp_fin_filingperiod"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_filingperiod"; +SELECT setval(pg_get_serial_sequence('"camp_fin_address"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_address"; +SELECT setval(pg_get_serial_sequence('"camp_fin_campaignstatus"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_campaignstatus"; +SELECT setval(pg_get_serial_sequence('"camp_fin_division"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_division"; +SELECT setval(pg_get_serial_sequence('"camp_fin_electionseason"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_electionseason"; +SELECT setval(pg_get_serial_sequence('"camp_fin_entity"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_entity"; +SELECT setval(pg_get_serial_sequence('"camp_fin_entitytype"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_entitytype"; +SELECT setval(pg_get_serial_sequence('"camp_fin_filingtype"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_filingtype"; +SELECT setval(pg_get_serial_sequence('"camp_fin_treasurer"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_treasurer"; +SELECT setval(pg_get_serial_sequence('"camp_fin_contact"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_contact"; +SELECT setval(pg_get_serial_sequence('"camp_fin_contacttype"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_contacttype"; +SELECT setval(pg_get_serial_sequence('"camp_fin_state"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_state"; +SELECT setval(pg_get_serial_sequence('"camp_fin_story_candidate"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_story_candidate"; +SELECT setval(pg_get_serial_sequence('"camp_fin_story_race"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_story_race"; +SELECT setval(pg_get_serial_sequence('"camp_fin_story"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_story"; +SELECT setval(pg_get_serial_sequence('"camp_fin_lobbyist"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_lobbyist"; +SELECT setval(pg_get_serial_sequence('"camp_fin_organization"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_organization"; +SELECT setval(pg_get_serial_sequence('"camp_fin_lobbyistregistration"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_lobbyistregistration"; +SELECT setval(pg_get_serial_sequence('"camp_fin_lobbyistemployer"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_lobbyistemployer"; +SELECT setval(pg_get_serial_sequence('"camp_fin_lobbyistfilingperiod"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_lobbyistfilingperiod"; +SELECT setval(pg_get_serial_sequence('"camp_fin_lobbyisttransaction"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_lobbyisttransaction"; +SELECT setval(pg_get_serial_sequence('"camp_fin_lobbyisttransactiontype"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_lobbyisttransactiontype"; +SELECT setval(pg_get_serial_sequence('"camp_fin_lobbyistreport"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_lobbyistreport"; +SELECT setval(pg_get_serial_sequence('"camp_fin_lobbyistspecialevent"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_lobbyistspecialevent"; +SELECT setval(pg_get_serial_sequence('"camp_fin_lobbyistbundlingdisclosure"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_lobbyistbundlingdisclosure"; +SELECT setval(pg_get_serial_sequence('"camp_fin_lobbyistbundlingdisclosurecontributor"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_lobbyistbundlingdisclosurecontributor"; +SELECT setval(pg_get_serial_sequence('"camp_fin_regularfilingperiod"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_regularfilingperiod"; +SELECT setval(pg_get_serial_sequence('"camp_fin_status"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_status"; +SELECT setval(pg_get_serial_sequence('"camp_fin_addresstype"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_addresstype"; +SELECT setval(pg_get_serial_sequence('"camp_fin_lobbyistfilingperiodtype"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_lobbyistfilingperiodtype"; +SELECT setval(pg_get_serial_sequence('"camp_fin_lobbyisttransactionstatus"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_lobbyisttransactionstatus"; +SELECT setval(pg_get_serial_sequence('"camp_fin_lobbyisttransactiongroup"','id'), coalesce(max("id"), 1), max("id") IS NOT null) FROM "camp_fin_lobbyisttransactiongroup"; +COMMIT;