这不是一个解决方案,但它是第一步,它节省了一点时间。它列出了当您按Tab时的迁移,然后您必须复制并粘贴。它使用定义函数的技巧来别名db:migrate任务。
键入migrate_down或migrate_up,然后按Tab键,看看发生了什么。
function _migrations_complete() {
local migrations=`ls db/migrate/*rb | cut -b12-`
COMPREPLY=($(compgen -W "${migrations}" -- ${COMP_WORDS[COMP_CWORD]}))
return 0
}
function migrate_up() {
bundle exec rake db:migrate:up VERSION=$1
}
function migrate_down() {
bundle exec rake db:migrate:down VERSION=$1
}
complete -o default -o nospace -F _migrations_complete migrate_up
complete -o default -o nospace -F _migrations_complete migrate_down
我想要做的就是完成迁移的名称并获取时间戳。我不太清楚足够的评估是否有可能。
顺便说一句,这https://github.com/jweslley/rails_completion增加了完成为许多轨命令,但不进行迁移的版本。
我正在使用gedit。我可以在我的编辑器中打开迁移文件,所以这绝不是问题。但是如果我需要重做一个特定的版本,那么获取该版本号是很乏味的。 例如,正如我在问题中提到的,如果我需要重做特定的迁移,唯一的方法是通过我提到的过程获取版本号 - 20100727200521。 我想知道是否有一个更容易的方法获取此号码。 – sridharraman 2013-03-13 11:37:47
好吧,我明白你的意思了。好的,然后是一个问题:你如何描述你如何知道你在寻找版本20100727200521而不是版本20100727200522?我可以建议巴赫,但我需要回答你如何确定你需要的版本。我明白你是如何搜索的,但你能否描述你如何知道你需要什么版本? – Aleks 2013-03-13 13:38:45
一个典型的用例是由于客户端的某些更改而被迫修改迁移。所以,我修改了迁移XXXX_create_articles(例如)。在编辑器中,通过搜索“文章”很容易获得此迁移文件。所以当我打开文件时,我会查看文件名,并在编辑器和终端之间切换,并输入版本号(从文件名)。 – sridharraman 2013-03-25 06:16:03