From 730fc33c87c95cc34247e8e6d14f19dc1612795f Mon Sep 17 00:00:00 2001 From: Miguel Hargreaves Pimenta Date: Thu, 16 Oct 2025 16:29:46 +0100 Subject: [PATCH 1/3] feat(rails): add multi-database aliases --- plugins/rails/rails.plugin.zsh | 101 +++++++++++++++++++++++++++++---- 1 file changed, 91 insertions(+), 10 deletions(-) diff --git a/plugins/rails/rails.plugin.zsh b/plugins/rails/rails.plugin.zsh index 75dd9b0c6..67ba5160a 100644 --- a/plugins/rails/rails.plugin.zsh +++ b/plugins/rails/rails.plugin.zsh @@ -47,18 +47,8 @@ alias rc='rails console' alias rcs='rails console --sandbox' alias rd='rails destroy' alias rdb='rails dbconsole' -alias rdc='rails db:create' -alias rdd='rails db:drop' -alias rdm='rails db:migrate' -alias rdmd='rails db:migrate:down' -alias rdmr='rails db:migrate:redo' -alias rdms='rails db:migrate:status' alias rdmtc='rails db:migrate db:test:clone' -alias rdmu='rails db:migrate:up' -alias rdr='rails db:rollback' -alias rdrs='rails db:reset' alias rds='rails db:seed' -alias rdsl='rails db:schema:load' alias rdtc='rails db:test:clone' alias rdtp='rails db:test:prepare' alias rgen='rails generate' @@ -105,6 +95,97 @@ alias rkn='rake notes' alias rksts='rake stats' alias rkt='rake test' +# Multi-database functions +# Usage: rdc - rails db:create: +function rdc() { + if [ -z "$1" ]; then + rails db:create + else + rails db:create:$1 + fi +} + +# Usage: rdd - rails db:drop: +function rdd() { + if [ -z "$1" ]; then + rails db:drop + else + rails db:drop:$1 + fi +} + +# Usage: rdm - rails db:migrate: +function rdm() { + if [ -z "$1" ]; then + rails db:migrate + else + rails db:migrate:$1 + fi +} + +# Usage: rdmd - rails db:migrate:down: +function rdmd() { + if [ -z "$1" ]; then + rails db:migrate:down + else + rails db:migrate:down:$1 + fi +} + +# Usage: rdmr - rails db:migrate:redo: +function rdmr() { + if [ -z "$1" ]; then + rails db:migrate:redo + else + rails db:migrate:redo:$1 + fi +} + +# Usage: rdms - rails db:migrate:status: +function rdms() { + if [ -z "$1" ]; then + rails db:migrate:status + else + rails db:migrate:status:$1 + fi +} + +# Usage: rdmu - rails db:migrate:up: +function rdmu() { + if [ -z "$1" ]; then + rails db:migrate:up + else + rails db:migrate:up:$1 + fi +} + +# Usage: rdr - rails db:rollback: +function rdr() { + if [ -z "$1" ]; then + rails db:rollback + else + rails db:rollback:$1 + fi +} + +# Usage: rdrs - rails db:reset: +function rdrs() { + if [ -z "$1" ]; then + rails db:reset + else + rails db:reset:$1 + fi +} + +# Usage: rdsl - rails db:schema:load: +function rdsl() { + if [ -z "$1" ]; then + rails db:schema:load + else + rails db:schema:load:$1 + fi +} + # legacy stuff alias sc='ruby script/console' alias sd='ruby script/destroy' From 78baf561c9c6e8be37ff516b47f414875564791d Mon Sep 17 00:00:00 2001 From: Miguel Hargreaves Pimenta Date: Sat, 25 Oct 2025 16:11:22 +0100 Subject: [PATCH 2/3] 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 } From 2bfaf3ccf26b753736802e6b6680f65c620ac682 Mon Sep 17 00:00:00 2001 From: Miguel Hargreaves Pimenta Date: Sat, 25 Oct 2025 16:16:09 +0100 Subject: [PATCH 3/3] feat(rails): add echo statements to rails db functions --- plugins/rails/rails.plugin.zsh | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/plugins/rails/rails.plugin.zsh b/plugins/rails/rails.plugin.zsh index 9ccfe45e3..ee937123f 100644 --- a/plugins/rails/rails.plugin.zsh +++ b/plugins/rails/rails.plugin.zsh @@ -99,6 +99,7 @@ alias rkt='rake test' # Usage: rdc [database] - rails db:create[:database] function rdc() { if [ $# -eq 0 ]; then + echo "Running: rails db:create" >&2 rails db:create else echo "Running: rails db:create:$1" >&2 @@ -109,6 +110,7 @@ function rdc() { # Usage: rdd [database] - rails db:drop[:database] function rdd() { if [ $# -eq 0 ]; then + echo "Running: rails db:drop" >&2 rails db:drop else echo "Running: rails db:drop:$1" >&2 @@ -119,12 +121,15 @@ function rdd() { # Usage: rdm [database] [VERSION=x VERBOSE=false SCOPE=blog] - rails db:migrate[:database] function rdm() { if [ $# -eq 0 ]; then + echo "Running: rails db:migrate" >&2 rails db:migrate elif [[ "$1" == *"="* ]]; then + echo "Running: rails db:migrate $*" >&2 rails db:migrate "$@" else local database="$1" shift + echo "Running: rails db:migrate:$database $*" >&2 rails db:migrate:"$database" "$@" fi } @@ -132,12 +137,15 @@ function rdm() { # Usage: rdmd [database] [VERSION=x] - rails db:migrate:down[:database] function rdmd() { if [ $# -eq 0 ]; then + echo "Running: rails db:migrate:down" >&2 rails db:migrate:down elif [[ "$1" == *"="* ]]; then + echo "Running: rails db:migrate:down $*" >&2 rails db:migrate:down "$@" else local database="$1" shift + echo "Running: rails db:migrate:down:$database $*" >&2 rails db:migrate:down:"$database" "$@" fi } @@ -145,12 +153,15 @@ function rdmd() { # Usage: rdmr [database] [STEP=x VERSION=x] - rails db:migrate:redo[:database] function rdmr() { if [ $# -eq 0 ]; then + echo "Running: rails db:migrate:redo" >&2 rails db:migrate:redo elif [[ "$1" == *"="* ]]; then + echo "Running: rails db:migrate:redo $*" >&2 rails db:migrate:redo "$@" else local database="$1" shift + echo "Running: rails db:migrate:redo:$database $*" >&2 rails db:migrate:redo:"$database" "$@" fi } @@ -158,6 +169,7 @@ function rdmr() { # Usage: rdms [database] - rails db:migrate:status[:database] function rdms() { if [ $# -eq 0 ]; then + echo "Running: rails db:migrate:status" >&2 rails db:migrate:status else echo "Running: rails db:migrate:status:$1" >&2 @@ -168,12 +180,15 @@ function rdms() { # Usage: rdmu [database] [VERSION=x] - rails db:migrate:up[:database] function rdmu() { if [ $# -eq 0 ]; then + echo "Running: rails db:migrate:up" >&2 rails db:migrate:up elif [[ "$1" == *"="* ]]; then + echo "Running: rails db:migrate:up $*" >&2 rails db:migrate:up "$@" else local database="$1" shift + echo "Running: rails db:migrate:up:$database $*" >&2 rails db:migrate:up:"$database" "$@" fi } @@ -181,12 +196,15 @@ function rdmu() { # Usage: rdr [database] [STEP=n] - rails db:rollback[:database] function rdr() { if [ $# -eq 0 ]; then + echo "Running: rails db:rollback" >&2 rails db:rollback elif [[ "$1" == *"="* ]]; then + echo "Running: rails db:rollback $*" >&2 rails db:rollback "$@" else local database="$1" shift + echo "Running: rails db:rollback:$database $*" >&2 rails db:rollback:"$database" "$@" fi } @@ -194,6 +212,7 @@ function rdr() { # Usage: rdrs [database] - rails db:reset[:database] function rdrs() { if [ $# -eq 0 ]; then + echo "Running: rails db:reset" >&2 rails db:reset else echo "Running: rails db:reset:$1" >&2 @@ -204,12 +223,15 @@ function rdrs() { # Usage: rdsl [database] [SCHEMA_FORMAT=ruby|sql] - rails db:schema:load[:database] function rdsl() { if [ $# -eq 0 ]; then + echo "Running: rails db:schema:load" >&2 rails db:schema:load elif [[ "$1" == *"="* ]]; then + echo "Running: rails db:schema:load $*" >&2 rails db:schema:load "$@" else local database="$1" shift + echo "Running: rails db:schema:load:$database $*" >&2 rails db:schema:load:"$database" "$@" fi }