fix(database): handle duplicate podcast_status type creation gracefully #753
+5
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Modify the upgrade function to prevent errors when creating the podcast_status ENUM type by wrapping the creation in a DO block that catches duplicate_object exceptions.
Description
The existence of the podcast_status in a database was causing a mandatory Alembic upgrade step (82) to fail during migration.
Motivation and Context
This specific upgrade (82) was not idempotent, essentially causing breaking migration issues for anyone using it. Now it is.
Screenshots
API Changes
Change Type
Testing Performed
Checklist
High-level PR Summary
This PR fixes a database migration issue by making the Alembic upgrade step 82 idempotent. The change wraps the
podcast_statusENUM type creation in a PostgreSQLDOblock that catchesduplicate_objectexceptions, preventing migration failures when the type already exists in the database.⏱️ Estimated Review Time: 5-15 minutes
💡 Review Order Suggestion
surfsense_backend/alembic/versions/82_add_podcast_status_and_thread.py