From 3075d0c0ab823fbf3f52e9dfa33edd4be70f4679 Mon Sep 17 00:00:00 2001 From: Alexey Poimtsev <25312+alec-c4@users.noreply.github.com> Date: Fri, 15 Jan 2021 22:23:15 +0300 Subject: [PATCH] feat(rails)!: run old rake aliases with `rails` (#9601) BREAKING CHANGE: we've updated the aliases that run `rake` to use `rails` instead because that's how they are run since Rails v5. The old `rake` aliases can still be run by using the `rk` prefix (e.g. the `rake test` alias has been changed from `rt` to `rkt`). Closes #9601 Closes #9813 Fixes #10696 Co-authored-by: Vsevolod Voloshyn --- plugins/rails/README.md | 111 ++++++++++++++++++++------------- plugins/rails/rails.plugin.zsh | 70 +++++++++++++-------- 2 files changed, 113 insertions(+), 68 deletions(-) diff --git a/plugins/rails/README.md b/plugins/rails/README.md index efdb8f8ba..0a6c68c75 100644 --- a/plugins/rails/README.md +++ b/plugins/rails/README.md @@ -12,47 +12,46 @@ plugins=(... rails) ### Rails aliases -| Alias | Command | Description | -|-------|----------------------------|----------------------------------------------------| -| `rc` | `rails console` | Interact with your Rails app from the CLI | -| `rcs` | `rails console --sandbox` | Test code in a sandbox, without changing any data | -| `rd` | `rails destroy` | Undo a generate operation | -| `rdb` | `rails dbconsole` | Interact with your db from the console | -| `rgen`| `rails generate` | Generate boilerplate code | -| `rgm` | `rails generate migration` | Generate a db migration | -| `rp` | `rails plugin` | Run a Rails plugin command | -| `rr` | `rails routes` | List all defined routes | -| `rrg` | `rails routes \| grep` | List and filter the defined routes | -| `ru` | `rails runner` | Run Ruby code in the context of Rails | -| `rs` | `rails server` | Launch a web server | -| `rsd` | `rails server --debugger` | Launch a web server with debugger | -| `rsp` | `rails server --port` | Launch a web server and specify the listening port | - -### Rake aliases - -| Alias | Command | Description | -|---------|---------------------------------|--------------------------------------------------------| -| `rdm` | `rake db:migrate` | Run pending db migrations | -| `rdms` | `rake db:migrate:status` | Show current db migration status | -| `rdmtc` | `rake db:migrate db:test:clone` | Run pending migrations and clone db into test database | -| `rdr` | `rake db:rollback` | Roll back the last migration | -| `rdc` | `rake db:create` | Create the database | -| `rds` | `rake db:seed` | Seed the database | -| `rdd` | `rake db:drop` | Delete the database | -| `rdrs` | `rake db:reset` | Delete the database and set it up again | -| `rdtc` | `rake db:test:clone` | Clone the database into the test database | -| `rdtp` | `rake db:test:prepare` | Duplicate the db schema into your test database | -| `rdsl` | `rake db:schema:load` | Load the database schema | -| `rlc` | `rake log:clear` | Clear Rails logs | -| `rn` | `rake notes` | Search for notes (`FIXME`, `TODO`) in code comments | -| `rt` | `rake test` | Run Rails tests | -| `rmd` | `rake middleware` | Interact with Rails middlewares | -| `rsts` | `rake stats` | Print code statistics | +| Alias | Command | Description | +| ------- | -------------------------------- | ------------------------------------------------------ | +| `rc` | `rails console` | Interact with your Rails app from the CLI | +| `rcs` | `rails console --sandbox` | Test code in a sandbox, without changing any data | +| `rd` | `rails destroy` | Undo a generate operation | +| `rdb` | `rails dbconsole` | Interact with your db from the console | +| `rdc` | `rails db:create` | Create the database | +| `rdd` | `rails db:drop` | Delete the database | +| `rdm` | `rails db:migrate` | Run pending db migrations | +| `rdmd` | `rails db:migrate:down` | Undo specific db migration | +| `rdmr` | `rails db:migrate:redo` | Redo specific db migration | +| `rdms` | `rails db:migrate:status` | Show current db migration status | +| `rdmtc` | `rails db:migrate db:test:clone` | Run pending migrations and clone db into test database | +| `rdmu` | `rails db:migrate:up` | Run specific db migration | +| `rdr` | `rails db:rollback` | Roll back the last migration | +| `rdrs` | `rails db:reset` | Delete the database and set it up again | +| `rds` | `rails db:seed` | Seed the database | +| `rdsl` | `rails db:schema:load` | Load the database schema | +| `rdtc` | `rails db:test:clone` | Clone the database into the test database | +| `rdtp` | `rails db:test:prepare` | Duplicate the db schema into your test database | +| `rgen` | `rails generate` | Generate boilerplate code | +| `rgm` | `rails generate migration` | Generate a db migration | +| `rlc` | `rails log:clear` | Clear Rails logs | +| `rmd` | `rails middleware` | Interact with Rails middlewares | +| `rn` | `rails notes` | Search for notes (`FIXME`, `TODO`) in code comments | +| `rp` | `rails plugin` | Run a Rails plugin command | +| `rr` | `rails routes` | List all defined routes | +| `rrg` | `rails routes \| grep` | List and filter the defined routes | +| `rs` | `rails server` | Launch a web server | +| `rsb` | `rails server --bind` | Launch a web server binding it to a specific IP | +| `rsd` | `rails server --debugger` | Launch a web server with debugger | +| `rsp` | `rails server --port` | Launch a web server and specify the listening port | +| `rsts` | `rails stats` | Print code statistics | +| `rt` | `rails test` | Run Rails tests | +| `ru` | `rails runner` | Run Ruby code in the context of Rails | ### Utility aliases | Alias | Command | Description | -|-----------|-------------------------------|------------------------------------------------| +| --------- | ----------------------------- | ---------------------------------------------- | | `devlog` | `tail -f log/development.log` | Show and follow changes to the development log | | `prodlog` | `tail -f log/production.log` | Show and follow changes to the production log | | `testlog` | `tail -f log/test.log` | Show and follow changes to the test log | @@ -60,7 +59,7 @@ plugins=(... rails) ### Environment settings | Alias | Command | Description | -|-------|-------------------------|---------------------------------| +| ----- | ----------------------- | ------------------------------- | | `RED` | `RAILS_ENV=development` | Sets `RAILS_ENV` to development | | `REP` | `RAILS_ENV=production` | Sets `RAILS_ENV` to production | | `RET` | `RAILS_ENV=test` | Sets `RAILS_ENV` to test | @@ -68,15 +67,41 @@ plugins=(... rails) These are global aliases. Use in combination with a command or just run them separately. For example: `REP rake db:migrate` will migrate the production db. +### Legacy rake aliases + +The following commands are run [using `rails` instead of `rake` since Rails v5][1], but are preserved under the +prefix `rk` for backwards compatibility. + +[1]: https://guides.rubyonrails.org/v5.2/command_line.html#bin-rails + +| Alias | Command | Description | +| -------- | ------------------------------- | ------------------------------------------------------ | +| `rkdc` | `rake db:create` | Create the database | +| `rkdd` | `rake db:drop` | Delete the database | +| `rkdm` | `rake db:migrate` | Run pending db migrations | +| `rkdms` | `rake db:migrate:status` | Show current db migration status | +| `rkdmtc` | `rake db:migrate db:test:clone` | Run pending migrations and clone db into test database | +| `rkdr` | `rake db:rollback` | Roll back the last migration | +| `rkdrs` | `rake db:reset` | Delete the database and set it up again | +| `rkds` | `rake db:seed` | Seed the database | +| `rkdsl` | `rake db:schema:load` | Load the database schema | +| `rkdtc` | `rake db:test:clone` | Clone the database into the test database | +| `rkdtp` | `rake db:test:prepare` | Duplicate the db schema into your test database | +| `rklc` | `rake log:clear` | Clear Rails logs | +| `rkmd` | `rake middleware` | Interact with Rails middlewares | +| `rkn` | `rake notes` | Search for notes (`FIXME`, `TODO`) in code comments | +| `rksts` | `rake stats` | Print code statistics | +| `rkt` | `rake test` | Run Rails tests | + ### Legacy stuff | Alias | Command | -|---------|------------------------------------| -| `sstat` | `thin --stats "/thin/stats" start` | -| `sg` | `ruby script/generate` | +| ------- | ---------------------------------- | +| `sc` | `ruby script/console` | | `sd` | `ruby script/destroy` | +| `sd` | `ruby script/server --debugger` | +| `sg` | `ruby script/generate` | | `sp` | `ruby script/plugin` | | `sr` | `ruby script/runner` | | `ssp` | `ruby script/spec` | -| `sc` | `ruby script/console` | -| `sd` | `ruby script/server --debugger` | +| `sstat` | `thin --stats "/thin/stats" start` | diff --git a/plugins/rails/rails.plugin.zsh b/plugins/rails/rails.plugin.zsh index 29b413434..f2b0f8293 100644 --- a/plugins/rails/rails.plugin.zsh +++ b/plugins/rails/rails.plugin.zsh @@ -43,47 +43,67 @@ 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' alias rgm='rails generate migration' +alias rlc='rails log:clear' +alias rmd='rails middleware' +alias rn='rails notes' alias rp='rails plugin' alias rr='rails routes' alias rrg='rails routes | grep' -alias ru='rails runner' alias rs='rails server' +alias rsb='rails server --bind' alias rsd='rails server --debugger' alias rsp='rails server --port' -alias rsb='rails server --bind' +alias rsts='rails stats' +alias rt='rails test' +alias ru='rails runner' + # Rake aliases -alias rdm='rake db:migrate' -alias rdmr='rake db:migrate:redo' -alias rdmd='rake db:migrate:down' -alias rdms='rake db:migrate:status' -alias rdmu='rake db:migrate:up' -alias rdr='rake db:rollback' -alias rdc='rake db:create' -alias rds='rake db:seed' -alias rdd='rake db:drop' -alias rdrs='rake db:reset' -alias rdtc='rake db:test:clone' -alias rdtp='rake db:test:prepare' -alias rdmtc='rake db:migrate db:test:clone' -alias rdsl='rake db:schema:load' -alias rlc='rake log:clear' -alias rn='rake notes' -alias rt='rake test' -alias rmd='rake middleware' -alias rsts='rake stats' +alias rkdc='rake db:create' +alias rkdd='rake db:drop' +alias rkdm='rake db:migrate' +alias rkdmd='rake db:migrate:down' +alias rkdmr='rake db:migrate:redo' +alias rkdms='rake db:migrate:status' +alias rkdmtc='rake db:migrate db:test:clone' +alias rkdmu='rake db:migrate:up' +alias rkdr='rake db:rollback' +alias rkdrs='rake db:reset' +alias rkds='rake db:seed' +alias rkdsl='rake db:schema:load' +alias rkdtc='rake db:test:clone' +alias rkdtp='rake db:test:prepare' +alias rklc='rake log:clear' +alias rkmd='rake middleware' +alias rkn='rake notes' +alias rksts='rake stats' +alias rkt='rake test' # legacy stuff -alias sstat='thin --stats "/thin/stats" start' -alias sg='ruby script/generate' +alias sc='ruby script/console' alias sd='ruby script/destroy' +alias sd='ruby script/server --debugger' +alias sg='ruby script/generate' alias sp='ruby script/plugin' alias sr='ruby script/runner' alias ssp='ruby script/spec' -alias sc='ruby script/console' -alias sd='ruby script/server --debugger' +alias sstat='thin --stats "/thin/stats" start' function remote_console() { /usr/bin/env ssh $1 "( cd $2 && ruby script/console production )"