Skip to content
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

Add Sqitch to comparison chart #414

Merged
merged 3 commits into from
Mar 12, 2023
Merged

Conversation

ttfkam
Copy link
Contributor

@ttfkam ttfkam commented Mar 11, 2023

References issue #249

Addresses issues in PR #268

@amacneil
Copy link
Owner

Thanks!

FYI I removed "version control aware" since I don't know what that means, and fixed the formatting.

@amacneil amacneil enabled auto-merge (squash) March 12, 2023 06:40
@amacneil amacneil merged commit b16f33a into amacneil:main Mar 12, 2023
@ttfkam
Copy link
Contributor Author

ttfkam commented Mar 13, 2023

Version control aware means that the database migration tool is aware that its migration files are being checked into version control and allows for fewer conflicts among team members when more than one is making database migration files at a time. It is a situation that is quite common and one where timestamps are not adequate to handle safely. VCS awareness also allows for bundling and deployment by tag rather than just the most recent commit to the repository.

https://speakerdeck.com/theory/sane-database-change-management-with-sqitch?slide=227

Also allows for editing functions with a real diff, not two unrelated files that happen to hold the same function name. The "where is the latest version of that function/view?" problem. Code reviews become much easier with this.

https://speakerdeck.com/theory/sane-database-change-management-with-sqitch?slide=280

This is why Sqitch doesn't support versions by timestamps. It was not an oversight or missing feature. Just the opposite in fact. It is why I added the row. As I look at it, I should have added a testing/verification row as well, so that migrations can be checked in an automated fashion to be sure they worked as intended rather than just being syntactically correct, which triggers no migration errors in many tools.

Note: none of this is meant as a slight against dbmate. What you've made here is very impressive. I especially like schema export functionality for easier diffing. It mitigates some of the problems with finding the most recent version of an object for update.

@ttfkam ttfkam deleted the add-sqitch-comparison branch March 13, 2023 02:18
@amacneil
Copy link
Owner

Thanks for the extra info. I tried to look through that deck but still can't understand how it handles out of order migrations differently. Anyway, it sounds like too much to convey in the comparison table - it's not meant to be comprehensive, just an answer to "why create dbmate".

The function editing/diff feature in squitch sounds cool.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants