这不是一个解决方案,但它是第一步,它可以节省一点时间。当您按 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为许多 rails 命令添加了完成,但没有为迁移版本添加完成。