From 78baf561c9c6e8be37ff516b47f414875564791d Mon Sep 17 00:00:00 2001 From: Miguel Hargreaves Pimenta Date: Sat, 25 Oct 2025 16:11:22 +0100 Subject: [PATCH] fix(rails): improve rails db functions back compatibility --- plugins/rails/rails.plugin.zsh | 88 ++++++++++++++++++++++------------ 1 file changed, 58 insertions(+), 30 deletions(-) diff --git a/plugins/rails/rails.plugin.zsh b/plugins/rails/rails.plugin.zsh index 67ba5160a..9ccfe45e3 100644 --- a/plugins/rails/rails.plugin.zsh +++ b/plugins/rails/rails.plugin.zsh @@ -96,93 +96,121 @@ alias rksts='rake stats' alias rkt='rake test' # Multi-database functions -# Usage: rdc - rails db:create: +# Usage: rdc [database] - rails db:create[:database] function rdc() { - if [ -z "$1" ]; then + if [ $# -eq 0 ]; then rails db:create else - rails db:create:$1 + echo "Running: rails db:create:$1" >&2 + rails db:create:"$1" fi } -# Usage: rdd - rails db:drop: +# Usage: rdd [database] - rails db:drop[:database] function rdd() { - if [ -z "$1" ]; then + if [ $# -eq 0 ]; then rails db:drop else - rails db:drop:$1 + echo "Running: rails db:drop:$1" >&2 + rails db:drop:"$1" fi } -# Usage: rdm - rails db:migrate: +# Usage: rdm [database] [VERSION=x VERBOSE=false SCOPE=blog] - rails db:migrate[:database] function rdm() { - if [ -z "$1" ]; then + if [ $# -eq 0 ]; then rails db:migrate + elif [[ "$1" == *"="* ]]; then + rails db:migrate "$@" else - rails db:migrate:$1 + local database="$1" + shift + rails db:migrate:"$database" "$@" fi } -# Usage: rdmd - rails db:migrate:down: +# Usage: rdmd [database] [VERSION=x] - rails db:migrate:down[:database] function rdmd() { - if [ -z "$1" ]; then + if [ $# -eq 0 ]; then rails db:migrate:down + elif [[ "$1" == *"="* ]]; then + rails db:migrate:down "$@" else - rails db:migrate:down:$1 + local database="$1" + shift + rails db:migrate:down:"$database" "$@" fi } -# Usage: rdmr - rails db:migrate:redo: +# Usage: rdmr [database] [STEP=x VERSION=x] - rails db:migrate:redo[:database] function rdmr() { - if [ -z "$1" ]; then + if [ $# -eq 0 ]; then rails db:migrate:redo + elif [[ "$1" == *"="* ]]; then + rails db:migrate:redo "$@" else - rails db:migrate:redo:$1 + local database="$1" + shift + rails db:migrate:redo:"$database" "$@" fi } -# Usage: rdms - rails db:migrate:status: +# Usage: rdms [database] - rails db:migrate:status[:database] function rdms() { - if [ -z "$1" ]; then + if [ $# -eq 0 ]; then rails db:migrate:status else - rails db:migrate:status:$1 + echo "Running: rails db:migrate:status:$1" >&2 + rails db:migrate:status:"$1" fi } -# Usage: rdmu - rails db:migrate:up: +# Usage: rdmu [database] [VERSION=x] - rails db:migrate:up[:database] function rdmu() { - if [ -z "$1" ]; then + if [ $# -eq 0 ]; then rails db:migrate:up + elif [[ "$1" == *"="* ]]; then + rails db:migrate:up "$@" else - rails db:migrate:up:$1 + local database="$1" + shift + rails db:migrate:up:"$database" "$@" fi } -# Usage: rdr - rails db:rollback: +# Usage: rdr [database] [STEP=n] - rails db:rollback[:database] function rdr() { - if [ -z "$1" ]; then + if [ $# -eq 0 ]; then rails db:rollback + elif [[ "$1" == *"="* ]]; then + rails db:rollback "$@" else - rails db:rollback:$1 + local database="$1" + shift + rails db:rollback:"$database" "$@" fi } -# Usage: rdrs - rails db:reset: +# Usage: rdrs [database] - rails db:reset[:database] function rdrs() { - if [ -z "$1" ]; then + if [ $# -eq 0 ]; then rails db:reset else - rails db:reset:$1 + echo "Running: rails db:reset:$1" >&2 + rails db:reset:"$1" fi } -# Usage: rdsl - rails db:schema:load: +# Usage: rdsl [database] [SCHEMA_FORMAT=ruby|sql] - rails db:schema:load[:database] function rdsl() { - if [ -z "$1" ]; then + if [ $# -eq 0 ]; then rails db:schema:load + elif [[ "$1" == *"="* ]]; then + rails db:schema:load "$@" else - rails db:schema:load:$1 + local database="$1" + shift + rails db:schema:load:"$database" "$@" fi }