-
Notifications
You must be signed in to change notification settings - Fork 7
Use sequential Alembic migration versions instead of hashes #479
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
WalkthroughThis PR renames Alembic revision identifiers to sequential numeric IDs (001–039), removes the standalone API key migration module, and updates migration files (including Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20–30 minutes
Suggested labels
Suggested reviewers
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
🧰 Additional context used🪛 markdownlint-cli2 (0.18.1)backend/README.md141-141: Dollar signs used before commands without showing output (MD014, commands-show-output) ⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
🔇 Additional comments (1)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
backend/app/alembic/versions/017_add_alter_columns_in_collections_table.py (1)
64-66:drop_constraint(None, ...)in downgrade will fail—constraint names must be explicit.
op.drop_constraintrequires an actual constraint name; passingNonewill not work even thoughop.create_foreign_key(None, ...)auto-generates names. The downgrade in lines 65-66 needs the explicit constraint names:"collection_organization_id_fkey"and"collection_project_id_fkey". This same issue exists in migrations 015 (apikey.user_id, collection.owner_id, document.owner_id, projectuser.user_id) and 019 (project.organization_id, credential.project_id). These migrations will fail on rollback and should be corrected to use explicit constraint names increate_foreign_key()or capture the auto-generated names for use in downgrade.
🧹 Nitpick comments (9)
backend/app/alembic/versions/012_added_provider_column_to_the_credential_.py (1)
19-19: Consider adding type hints to migration functions.Per your coding guidelines for Python 3.11+ projects, the
upgrade()anddowngrade()functions lack return type annotations. While these are standard Alembic signatures, adding-> Nonewould improve consistency across the codebase.def upgrade() -> None: # ... def downgrade() -> None: # ...Also applies to: 64-64
backend/app/alembic/versions/002_add_max_length_for_string_varchar_.py (1)
20-20: Add type hints to migration functions.The
upgrade()anddowngrade()functions lack return type hints. For consistency with the Python 3.11+ project standard, add-> Nonetype hints.-def upgrade(): +def upgrade() -> None:-def downgrade(): +def downgrade() -> None:Also applies to: 58-58
backend/app/alembic/versions/003_edit_replace_id_integers_in_all_models_.py (3)
21-21: Consider adding return type hint.The function signature lacks a return type hint. While Alembic migrations traditionally omit type hints, the coding guidelines specify that this Python 3.11+ project should use them.
Apply this diff to add the type hint:
-def upgrade(): +def upgrade() -> None:
76-76: Consider adding return type hint.The function signature lacks a return type hint. While Alembic migrations traditionally omit type hints, the coding guidelines specify that this Python 3.11+ project should use them.
Apply this diff to add the type hint:
-def downgrade(): +def downgrade() -> None:
78-89: Consider removing redundantautoincrement=Trueparameter.The
autoincrement=Trueparameter on the column definitions may be redundant since the sequences are explicitly created and managed withCREATE SEQUENCEstatements. The manualnextval()calls (lines 98-100) populate the columns directly.Apply this diff to simplify:
- op.add_column("user", sa.Column("old_id", sa.Integer, autoincrement=True)) - op.add_column("item", sa.Column("old_id", sa.Integer, autoincrement=True)) + op.add_column("user", sa.Column("old_id", sa.Integer)) + op.add_column("item", sa.Column("old_id", sa.Integer))backend/app/alembic/versions/036_create_evaluation_run_table.py (1)
21-23: Optional: annotate Alembic hooks with return types for consistencyGiven the project’s preference for type hints, you may consider (for future migrations) annotating Alembic hooks as returning
None, e.g.:def upgrade() -> None: ... def downgrade() -> None: ...Not required for this PR, but it would bring new migrations in line with the general typing guideline.
Also applies to: 183-185
backend/app/alembic/versions/037_evaluation_update_constraints.py (1)
3-4: 037 metadata aligns with 036 predecessor; minor pre-existing comment mismatchThe revision identifiers are cleanly updated to
"037"/"036"in both header and module constants, which is correct for the new ordering.Unrelated to this PR’s change but worth noting for future cleanup: the comments around the
evaluation_runbatch job foreign keys (Lines 35–37 and 86–87) describe changingSET NULLbehavior, but both the upgrade and downgrade currently recreate the FKs withondelete="SET NULL". The net effect is a JSON→JSONB type change; the FK operations are effectively a no-op. If you touch this file again, consider updating the comments or simplifying the FK operations to avoid confusion.Also applies to: 14-15
backend/app/alembic/versions/034_refactor_api_key_table.py (2)
11-11: Unused import.
Sessionis imported but never used in the file. The AI summary indicates the runtime migration logic that used it was removed.-from sqlalchemy.orm import Session
21-21: Add return type hints to functions.Per coding guidelines, type hints should be used in Python code.
-def upgrade(): +def upgrade() -> None:-def downgrade(): +def downgrade() -> None:Also applies to: 53-53
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (41)
backend/alembic.ini(1 hunks)backend/app/alembic/migrate_api_key.py(0 hunks)backend/app/alembic/versions/001_initialize_models.py(2 hunks)backend/app/alembic/versions/002_add_max_length_for_string_varchar_.py(2 hunks)backend/app/alembic/versions/003_edit_replace_id_integers_in_all_models_.py(2 hunks)backend/app/alembic/versions/004_add_cascade_delete_relationships.py(2 hunks)backend/app/alembic/versions/005_add_organization_project_setup.py(2 hunks)backend/app/alembic/versions/006_add_api_key_table.py(2 hunks)backend/app/alembic/versions/007_add_document_tables.py(2 hunks)backend/app/alembic/versions/008_item_table_drop.py(2 hunks)backend/app/alembic/versions/009_add_credential_table.py(2 hunks)backend/app/alembic/versions/010_add_collection_tables.py(2 hunks)backend/app/alembic/versions/011_add_threads_table.py(2 hunks)backend/app/alembic/versions/012_added_provider_column_to_the_credential_.py(2 hunks)backend/app/alembic/versions/013_add_project_id_in_api_key_table.py(2 hunks)backend/app/alembic/versions/014_user_id_from_uuid_to_int.py(2 hunks)backend/app/alembic/versions/015_add_fk_constraint_to_user_id_columns.py(2 hunks)backend/app/alembic/versions/016_create_assistant_table.py(2 hunks)backend/app/alembic/versions/017_add_alter_columns_in_collections_table.py(2 hunks)backend/app/alembic/versions/018_change_vector_store_id_to_vector_store_ids.py(2 hunks)backend/app/alembic/versions/019_add_inconistency_fixes.py(2 hunks)backend/app/alembic/versions/020_add_is_deleted_column_in_assistant_table.py(2 hunks)backend/app/alembic/versions/021_add_openai_conversation_table.py(2 hunks)backend/app/alembic/versions/022_add_error_message_column_in_collections_.py(2 hunks)backend/app/alembic/versions/023_alter_unique_constraint_assistant_table.py(2 hunks)backend/app/alembic/versions/024_unique_constraint_on_project_name_and_.py(2 hunks)backend/app/alembic/versions/025_add_storage_path_to_project_and_project_to_document_table.py(2 hunks)backend/app/alembic/versions/026_add_source_document_id_to_document_table.py(2 hunks)backend/app/alembic/versions/027_create_doc_transformation_job_table.py(2 hunks)backend/app/alembic/versions/028_add_fine_tuning_and_model_evaluation_.py(2 hunks)backend/app/alembic/versions/029_create_job_table.py(2 hunks)backend/app/alembic/versions/030_delete_non_successful_columns_from_collection_table.py(2 hunks)backend/app/alembic/versions/031_adding_collection_job_table_and_alter_collection_table.py(2 hunks)backend/app/alembic/versions/032_refactor_project_user.py(2 hunks)backend/app/alembic/versions/033_drop_deleted_at_credentials.py(1 hunks)backend/app/alembic/versions/034_refactor_api_key_table.py(2 hunks)backend/app/alembic/versions/035_add_llm_im_jobs_table.py(2 hunks)backend/app/alembic/versions/036_create_evaluation_run_table.py(2 hunks)backend/app/alembic/versions/037_evaluation_update_constraints.py(2 hunks)backend/app/alembic/versions/038_config_management_tables.py(2 hunks)backend/app/alembic/versions/039_alter_doc_transform_table_for_celery.py(2 hunks)
💤 Files with no reviewable changes (1)
- backend/app/alembic/migrate_api_key.py
🧰 Additional context used
📓 Path-based instructions (1)
**/*.py
📄 CodeRabbit inference engine (CLAUDE.md)
Use type hints in Python code (Python 3.11+ project)
Files:
backend/app/alembic/versions/032_refactor_project_user.pybackend/app/alembic/versions/001_initialize_models.pybackend/app/alembic/versions/027_create_doc_transformation_job_table.pybackend/app/alembic/versions/015_add_fk_constraint_to_user_id_columns.pybackend/app/alembic/versions/019_add_inconistency_fixes.pybackend/app/alembic/versions/017_add_alter_columns_in_collections_table.pybackend/app/alembic/versions/016_create_assistant_table.pybackend/app/alembic/versions/026_add_source_document_id_to_document_table.pybackend/app/alembic/versions/014_user_id_from_uuid_to_int.pybackend/app/alembic/versions/013_add_project_id_in_api_key_table.pybackend/app/alembic/versions/018_change_vector_store_id_to_vector_store_ids.pybackend/app/alembic/versions/007_add_document_tables.pybackend/app/alembic/versions/023_alter_unique_constraint_assistant_table.pybackend/app/alembic/versions/025_add_storage_path_to_project_and_project_to_document_table.pybackend/app/alembic/versions/028_add_fine_tuning_and_model_evaluation_.pybackend/app/alembic/versions/020_add_is_deleted_column_in_assistant_table.pybackend/app/alembic/versions/010_add_collection_tables.pybackend/app/alembic/versions/008_item_table_drop.pybackend/app/alembic/versions/012_added_provider_column_to_the_credential_.pybackend/app/alembic/versions/009_add_credential_table.pybackend/app/alembic/versions/003_edit_replace_id_integers_in_all_models_.pybackend/app/alembic/versions/034_refactor_api_key_table.pybackend/app/alembic/versions/004_add_cascade_delete_relationships.pybackend/app/alembic/versions/022_add_error_message_column_in_collections_.pybackend/app/alembic/versions/035_add_llm_im_jobs_table.pybackend/app/alembic/versions/030_delete_non_successful_columns_from_collection_table.pybackend/app/alembic/versions/036_create_evaluation_run_table.pybackend/app/alembic/versions/024_unique_constraint_on_project_name_and_.pybackend/app/alembic/versions/021_add_openai_conversation_table.pybackend/app/alembic/versions/011_add_threads_table.pybackend/app/alembic/versions/031_adding_collection_job_table_and_alter_collection_table.pybackend/app/alembic/versions/033_drop_deleted_at_credentials.pybackend/app/alembic/versions/039_alter_doc_transform_table_for_celery.pybackend/app/alembic/versions/038_config_management_tables.pybackend/app/alembic/versions/029_create_job_table.pybackend/app/alembic/versions/006_add_api_key_table.pybackend/app/alembic/versions/005_add_organization_project_setup.pybackend/app/alembic/versions/037_evaluation_update_constraints.pybackend/app/alembic/versions/002_add_max_length_for_string_varchar_.py
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: checks (3.11.7, 6)
🔇 Additional comments (42)
backend/app/alembic/versions/012_added_provider_column_to_the_credential_.py (1)
3-4: Sequential migration identifiers correctly applied.The revision metadata has been properly updated from hash-based identifiers to sequential numbering. The docstring (lines 3-4) and variables (lines 13-14) are consistent: revision "012" with down_revision "011" correctly establishes the migration chain.
Also applies to: 13-14
backend/app/alembic/versions/002_add_max_length_for_string_varchar_.py (2)
3-4: Revision metadata correctly updated to sequential numbering.The migration identifiers are properly converted from hashes to sequential numbers and correctly reference the parent migration.
Also applies to: 14-15
20-93: Migration logic is sound and unchanged.The
upgrade()anddowngrade()functions correctly and symmetrically alter string column lengths. No functional changes detected; only metadata was updated.backend/app/alembic/versions/014_user_id_from_uuid_to_int.py (1)
3-4: Revision metadata looks consistent with numeric scheme; verify migration chain/head state
Revision ID: 014/Revises: 013and therevision/down_revisionvariables align with the file name and the intended sequential numbering. No issues from the code side.Please just re‑confirm locally that:
alembic historyshows a clean linear chain up to014, andalembic headsreports a single head after renumbering,to avoid any surprises in environments that already applied the old hash‑based revisions.
Also applies to: 14-15
backend/app/alembic/versions/013_add_project_id_in_api_key_table.py (1)
3-4: Revision metadata correctly converted to numeric IDs; Alembic graph verifiedThe switch from hashed IDs to numeric ones is correct:
revision = "013"matches the filename anddown_revision = "012"matches the expected predecessor. The migration graph is linear and consistent with migration 014 correctly referencing 013 as its predecessor. No stale hash-style revision IDs remain in the codebase.backend/app/alembic/versions/003_edit_replace_id_integers_in_all_models_.py (3)
76-119: Note: Downgrade will not restore original integer ID values.The downgrade logic correctly reverses the UUID-to-integer conversion, but it generates new sequential integer IDs rather than restoring the original values. This is expected behavior for this type of migration, but it means the downgrade is not fully reversible if preserving original IDs is important.
3-4: Migration chain is correctly established.The revision identifiers have been properly updated to sequential numbers:
- Migration "002" exists and correctly points to "001" as its down_revision
- Migration "004" exists and correctly points to "003" as its down_revision
- No hash-based revision IDs remain in the migration chain
All migrations from 001 through 039 form an unbroken sequential chain with proper dependencies.
21-73: The migration properly handles all foreign key constraints that exist at this point in the migration sequence.At the time migration 003 executes, only the
useranditemtables exist. Theitem.owner_idforeign key touser.idis correctly handled: the constraint is dropped (line 58), the old INTEGER column is replaced with a new UUID column (lines 42-43, 50), and the constraint is recreated after the primary key type change (line 73).All other tables that reference
user.id(document, api_key, organization, project, collection, etc.) are created in later migrations (005+). When those tables are created,user.idis already UUID type, so their foreign key columns will correctly be defined as UUID from the start. No additional verification is needed.backend/alembic.ini (1)
7-7: LGTM!Minor whitespace addition with no functional impact.
backend/app/alembic/versions/008_item_table_drop.py (1)
3-4: LGTM!Revision metadata correctly updated to sequential numbering. The revision ID "008" matches the filename prefix, and the chain linkage to "007" is consistent.
Also applies to: 14-15
backend/app/alembic/versions/001_initialize_models.py (1)
3-3: LGTM!Initial migration correctly updated to "001" with
down_revision = None. The sequential numbering starts cleanly here.Also applies to: 13-13
backend/app/alembic/versions/004_add_cascade_delete_relationships.py (1)
3-4: LGTM!Revision metadata correctly updated to "004" with proper linkage to "003".
Also applies to: 14-15
backend/app/alembic/versions/032_refactor_project_user.py (1)
3-4: LGTM!Revision metadata correctly updated to "032" with proper linkage to "031". The sequential numbering maintains the migration chain integrity.
Also applies to: 14-15
backend/app/alembic/versions/009_add_credential_table.py (1)
3-4: Sequential revision metadata for 009 is consistent
Revision ID/Revisesandrevision/down_revisionare all updated to"009"/"008"and remain internally consistent. Migration body is unchanged, so behavior is preserved.Also applies to: 14-15
backend/app/alembic/versions/021_add_openai_conversation_table.py (1)
3-4: 021 revision header and identifiers correctly alignedThe revision identifiers are cleanly renumbered to
"021"/"020"in both the comment header and module variables, with no changes to the table or index definitions. This keeps the migration behavior intact while fitting the new sequential scheme.Also applies to: 14-15
backend/app/alembic/versions/036_create_evaluation_run_table.py (1)
3-4: 036 revision renumbering matches surrounding migrationsThe revision and down-revision identifiers are now
"036"/"035"both in the header and at module level, matching the intended position after 035. Migration DDL/DML is untouched, so existing behavior is preserved.Also applies to: 15-16
backend/app/alembic/versions/038_config_management_tables.py (1)
3-4: 038 revision metadata correctly chained after 037Both the header and module-level identifiers now use
"038"/"037", aligning this migration after 037 in the numeric series without altering the actual DDL.Also applies to: 14-15
backend/app/alembic/versions/007_add_document_tables.py (1)
3-4: 007 revision identifiers correctly renumberedThe migration now uses
"007"/"006"consistently in its header and module-level identifiers, preserving behavior while integrating into the numeric sequence.Also applies to: 14-15
backend/app/alembic/versions/030_delete_non_successful_columns_from_collection_table.py (1)
3-4: 030 revision metadata correctly positioned between 029 and 031The identifiers are updated to
"030"/"029"in both the header and module variables, which keeps this data-cleanup migration in the appropriate place in the numeric chain with no change to its behavior.Also applies to: 14-15
backend/app/alembic/versions/024_unique_constraint_on_project_name_and_.py (1)
3-4: Revision metadata is consistent; verify alembic_version table alignment in deployed databasesThe
Revision IDandRevisesheader (lines 3-4) match therevisionanddown_revisionmodule variables (lines 14-15), both correctly set to"024"and"023". The migration chain is unbroken from001through039, with024properly chaining to023and025correctly referencing024.Operational concern: if these numeric IDs replaced hash-based revision identifiers in existing deployed databases, the
alembic_versiontable will contain mismatched IDs. Before applying further migrations, usealembic stampor equivalent tooling to remap old revision IDs to the new numeric ones in all environments, and validate on a fresh database that the full chain applies cleanly.backend/app/alembic/versions/033_drop_deleted_at_credentials.py (1)
3-4: Sequential revision metadata is internally consistent.Docstring and
revision/down_revisionvalues align (033→032), with no behavioural changes to the migration itself.Also applies to: 12-13
backend/app/alembic/versions/031_adding_collection_job_table_and_alter_collection_table.py (1)
3-4: Revision chain metadata matches the intended 030 → 031 sequence.
Revision ID/Revisesandrevision/down_revisionall agree (031→030); migration logic is unchanged.Also applies to: 14-15
backend/app/alembic/versions/017_add_alter_columns_in_collections_table.py (1)
3-4: Metadata update to 017 → 016 looks consistent.Header and module-level identifiers both use
revision="017"anddown_revision="016", with no changes to the migration body.Also applies to: 15-16
backend/app/alembic/versions/020_add_is_deleted_column_in_assistant_table.py (1)
3-4: Revision metadata aligns for 020 → 019.Header and revision constants both use
020/019; migration behaviour is unchanged.Also applies to: 13-14
backend/app/alembic/versions/019_add_inconistency_fixes.py (1)
3-4: Sequential IDs 019 → 018 are wired correctly.
Revision ID,Revises,revision, anddown_revisionare consistent (019→018); the upgrade/downgrade logic is untouched.Also applies to: 14-15
backend/app/alembic/versions/015_add_fk_constraint_to_user_id_columns.py (1)
3-4: Metadata 015 → 014 looks correct.Header and module-level revision identifiers are aligned (
015→014); migration body is unchanged.Also applies to: 14-15
backend/app/alembic/versions/035_add_llm_im_jobs_table.py (1)
3-4: Revision metadata 035 → 034 is coherent.Header and identifiers are in sync (
035→034); upgrade/downgrade behaviour is unchanged, with downgrade still intentionally left as a manual step.Also applies to: 13-14
backend/app/alembic/versions/006_add_api_key_table.py (1)
3-4: > Likely an incorrect or invalid review comment.backend/app/alembic/versions/027_create_doc_transformation_job_table.py (1)
3-4: LGTM!The revision chain is correct (026 → 027), consistent with the migration sequence.
Also applies to: 14-15
backend/app/alembic/versions/028_add_fine_tuning_and_model_evaluation_.py (1)
3-4: LGTM!The revision chain is correct (027 → 028), properly linking to the doc_transformation_job migration.
Also applies to: 14-15
backend/app/alembic/versions/029_create_job_table.py (1)
3-4: LGTM!The revision chain is correct (028 → 029), properly linking to the fine_tuning migration.
Also applies to: 14-15
backend/app/alembic/versions/039_alter_doc_transform_table_for_celery.py (1)
3-4: LGTM!The revision chain is correct (038 → 039). As the highest-numbered migration, this is the current head of the migration chain.
Also applies to: 14-15
backend/app/alembic/versions/016_create_assistant_table.py (1)
3-4: No action needed.The revision identifiers (016, 015) are correct and follow the established pattern used throughout the entire migration chain. All migrations from 001 onwards use simple sequential numeric identifiers, not hash-based IDs. There is no compatibility issue to address.
Likely an incorrect or invalid review comment.
backend/app/alembic/versions/026_add_source_document_id_to_document_table.py (1)
3-4: 026 metadata is consistent with sequential chainDocstring and
revision/down_revisionconstants all align on"026"→"025", preserving a linear migration chain with 025 as the parent. No functional migration logic changed here, so this looks good.Also applies to: 14-15
backend/app/alembic/versions/023_alter_unique_constraint_assistant_table.py (1)
3-4: 023 revision metadata correctly updated
Revision ID/Revisesandrevision/down_revisionall consistently use"023"and"022", respectively. Given no logic changes to the upgrade/downgrade, this renumbering is safe in isolation.Also applies to: 14-15
backend/app/alembic/versions/022_add_error_message_column_in_collections_.py (1)
3-4: 022 revision metadata matches new numberingThe docstring and Alembic identifiers consistently use
"022"and"021". With unchanged migration operations, this is a clean metadata-only renumber.Also applies to: 14-15
backend/app/alembic/versions/010_add_collection_tables.py (1)
3-4: 010 correctly chained after 009
Revision ID: 010andRevises: 009match therevision = "010"/down_revision = "009"constants, so this migration is correctly placed between 009 and 011 in the sequential scheme. No migration logic impact.Also applies to: 14-15
backend/app/alembic/versions/011_add_threads_table.py (1)
3-4: 011 correctly follows 010The
Revision ID/Reviseslines and the Alembicrevision/down_revisionconstants all match ("011"→"010"), preserving the expected ordering between 010 and later migrations. No schema logic changes introduced.Also applies to: 14-15
backend/app/alembic/versions/018_change_vector_store_id_to_vector_store_ids.py (1)
3-4: 018 renumbering is consistent with 017
Revision ID: 018andRevises: 017are in sync withrevision = "018"/down_revision = "017". Since the actual upgrade/downgrade logic is untouched, this is a safe metadata-only update.Also applies to: 13-14
backend/app/alembic/versions/025_add_storage_path_to_project_and_project_to_document_table.py (1)
3-4: Migration 025 metadata and apikey dependency are correctThe change to
"025"/"024"in both header andrevision/down_revisionis consistent and maintains the correct sequence. The apikey table has existed since migration 006 and is present before migration 025, so the upgrade (lines 49-50) and downgrade (lines 87-89) operations that query the apikey table will execute safely. No removed migrations have broken this dependency chain.backend/app/alembic/versions/005_add_organization_project_setup.py (1)
3-4: 005 metadata is consistent; Alembic history confirms no duplicates or chain breaksThe renumbering is internally consistent (
"005"→"004"in both docstring and constants), and the migration chain spans 39 migrations with no gaps or duplicate revision IDs. The linear progression (001 → 002 → 003 → ... → 005 → 006 → ... → 039) confirms the migration history is sound. Existing environments with old hash-based revisions will need a stamping strategy, but the chain itself is ready.backend/app/alembic/versions/034_refactor_api_key_table.py (1)
3-4: Sequential versioning update looks good.The revision identifiers are correctly updated to use sequential numbering ("034" and "033") as intended by the PR objectives.
Also applies to: 15-16
Summary
This update removes an obsolete migration script and improves the migration process. It also standardizes the alembic versioning to sequential numbers for better clarity and consistency.
Target issue is #472
Checklist
Before submitting a pull request, please ensure that you mark these task.
fastapi run --reload app/main.pyordocker compose upin the repository root and test.Summary by CodeRabbit
Chores
Documentation
✏️ Tip: You can customize this high-level summary in your review settings.