2015-11-04 18 views
0

分支每当我切换我有运行命令分支:自动运行rake任务,当你切换的混帐

rake db:drop 
rake db:migrate 
rake db:setup 

是否有办法来自动运行在终端这些命令我的应用程序?我正在Rails应用程序上开发一个Ruby,并且在GitHub上有许多分支。是否有一个我可以添加到的文件将自动运行此命令?

例如,我会做这个“git checkout branch101” 然后我想运行上面的3个命令。

+0

为什么你想在切换每个分支后运行这些命令?对我来说这似乎很不寻常。 – Pavan

+0

当前在我的团队中,我们在不同模式/迁移的分支上运行,所以它不断需要切换分支变得细微差异。 – Jay266

+0

为什么要删除,迁移,设置? 'rake db:reset'会执行'db:drop',然后是'db:setup',然后执行'db:create','db:schema:load','db:seed'。所以它似乎根据您的要求'rake db:reset'将是唯一需要的命令,因此可能不需要自动化任务。除非系统迁移没有运行到模式中,在这种情况下,您可能也需要运行它们。 – engineersmnky

回答

2

将此shell脚本保存到文件/path/to/repo/.git/hooks/post-checkout,并使其可执行。

#! /bin/sh 

# Start from the repository root. 
cd ./$(git rev-parse --show-cdup) 

# drop migrate and set up. 
rake db:drop 
rake db:migrate 
rake db:setup 
+0

我发现指定的目录最多为/ hooks /,但找不到“post-checkout”。我发现的唯一相似之处是:“post-update.sample”。我应该在该文件中复制我的命令的内容吗?我怎样才能让它可执行? – Jay266

+0

将脚本另存为结账 – sadaf2605

+0

真棒,它的工作原理。不幸的是,它并没有出现在我的git状态中。我如何将这些更改推送到Git Repo? – Jay266

0

你要找什么是一样的东西Guard运行测试套件,只要在你的回购代码更改。你应该能够调整Guard来运行你的Rake任务而不是测试。 Railscasts有一个很好的解释卫队的screencast

快速谷歌搜索后,看起来像有一个可用于运行耙子任务的宝石:guard-rake。不幸的是,它似乎并没有被广泛使用。