-
-
Save pedrolopez/2007c932618e0ef9efdb to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env ruby | |
# vim: set syntax=ruby | |
# Ensures that changes to the Rails schema.rb file may only be committed if a | |
# migration file is also committed at the same time. | |
def schema_modified? | |
%x[ git diff --cached |grep schema.rb ] == '' | |
end | |
def no_migrations_staged? | |
%x[ git diff --cached |grep 'db\/migrate\/20[0-9]*' ] == '' | |
end | |
# regex for typical migration | |
# db/migrate/20110901091759_remove_invalid_venue_phone_numbers.rb | |
# db\/migrate\/20[0-9]{12}_.*\.rb$ | |
# or | |
# db\/migrate\/20[0-9]* | |
# Warning may only work for like 100 years or something. | |
if schema_modified? && no_migrations_staged? | |
puts "Cannot commit modified schema.rb without any migrations." | |
exit 1 | |
end | |
exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment