Ensure FKs are properly included in structure dumps #2109
Merged
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.
Issue Summary
FK constraints are mistakenly not being included in SQL structure dumps (
rails db:structure:dump).Issue Details
Due to a bug that I believe was introduced quite a while ago (in #1641, fixing #1625), the DDL describing foreign keys is being discarded in favour of the DDL describing views.
I believe this was missed because the test coverage of the FK dumping tests only the standalone method that does this (
#structure_dump_fk_constraints), rather than the main#structure_dumpmethod.PR Details
This PR ensures that both the view DDL and the foreign key DDL gets included when a structure dump is performed, and adjusts the specs accordingly.
Note on testing
I could only get a limited Oracle enviroment working, but was able to run the appropriate specs:
Many thanks for all the hard work on this gem! 😃