heroku_san Rake任务速查清单:20+个常用命令一次掌握,多应用运维不再翻文档 heroku_san Rake任务速查清单20个常用命令一次掌握多应用运维不再翻文档【免费下载链接】heroku_sanHelpful stuffs for Heroku.项目地址: https://gitcode.com/gh_mirrors/he/heroku_sanheroku_san 是一款面向Heroku 多应用管理的 Rake 任务集合。只要一份 yml 配置文件就能统一管理 staging、production、demo 等全部环境一条命令批量部署、重启、查日志、迁移数据库。本篇为你整理出29 个常用 Rake 命令速查清单新手也能快速上手多应用运维再也不用反复翻文档。 快速上手3步完成 heroku_san 安装配置第 1 步安装 Gem只需开发环境不会打进生产包# Gemfile group :development do gem heroku_san end⚠️ 注意需要本地已安装 Heroku Toolbelt因为部分命令依赖heroku命令行。第 2 步生成配置文件rake heroku:create_config # 通用项目 rails generate heroku_san # Rails 3 项目会在config/heroku.yml生成示例配置模板见 lib/templates/heroku.example.yml。第 3 步一键创建所有应用rake all heroku:create heroku:rack_env项目为空时heroku_san 会按配置自动创建全部 Heroku 应用并为每个应用设置正确的RACK_ENV。 一份 heroku.yml 统管多环境stage 机制详解heroku_san 的核心概念是stage阶段/环境yml 里的每个键名就是应用简称指向一个真实的 Heroku app。production: app: awesomeapp tag: production/* config: BUNDLE_WITHOUT: development:test staging: app: awesomeapp-staging config: default BUNDLE_WITHOUT: development:test addons: - pgbackups:auto-week demo: app: awesomeapp-demo config: *default配置好之后每个 stage 都会自动生成一个同名 Rake 任务逻辑在 lib/heroku_san/tasks.rb用来告诉后续命令要操作哪些应用rake production deploy # 只部署生产 rake demo staging restart # 同时重启 demo 和 staging rake all restart # all 所有应用stage 列表是可叠加的可以随意挑选要执行命令的目标这是多应用运维的关键技巧。 heroku_san 常用 Rake 命令速查表29个完整任务定义见 lib/tasks/heroku.rake底层能力集中在 lib/heroku_san/stage.rb。应用管理类命令作用rake heroku:create创建 Heroku 应用rake heroku:create_config生成示例配置文件rake heroku:apps列出所有应用及其当前部署版本会查询 Herokurake heroku:apps:local仅本地列出应用不访问 Heroku速度更快rake heroku:remotes为所有应用批量添加 git remoterake all选定全部应用供后续命令使用部署发布类命令作用rake heroku:deploy[commit]推送指定提交默认 HEAD迁移并重启rake heroku:deploy:force[commit]强制推送后部署rake heroku:push[commit]仅推送提交不重启rake heroku:push:force[commit]强制推送提交rake heroku:db:migrate远程执行数据库迁移并重启rake heroku:db:pull把线上数据库拉取到本地开发库rake heroku:deploy:before部署前回调钩子rake heroku:deploy:after部署后回调钩子环境配置类命令作用rake heroku:config把 yml 中的 config 变量推送到各应用rake heroku:config:list列出 Heroku 线上实际生效的变量rake heroku:config:list:local仅列出 yml 里配置的变量不访问线上rake heroku:config:rack_env为各应用自动补上正确的 RACK_ENVrake heroku:addons批量安装 yml 中声明的插件如 pgbackupsrake heroku:addons:local仅列出已配置的插件清单运维监控类命令作用rake heroku:restart重启远程服务器rake heroku:logs查看 Heroku 日志rake heroku:logs:tail实时跟踪日志需 logging:expanded 插件rake heroku:console打开远端 Rails consolerake heroku:shell进入应用内的 bash shellrake heroku:maintenance/maintenance_on开启维护模式rake heroku:maintenance_off关闭维护模式rake heroku:rake[task]在远端执行任意 rake 任务⚡ 高频命令全局别名少敲一半字符高频任务被别名到全局命名空间日常使用更短更好记别名等价于rake allheroku:stage:allrake deployheroku:deployrake deploy:forceheroku:deploy:forcerake restartheroku:restartrake migrateheroku:db:migraterake consoleheroku:consolerake shellheroku:shellrake logs/logs:tailheroku:logs:default/heroku:logs:tailrake before_deploy/after_deploy部署前后回调 日常三板斧rake production deploy发布、rake all restart重启、rake logs看日志。 部署策略怎么选Rails 与 Sinatra 的区别部署时的具体动作由部署策略类决定位于 lib/heroku_san/deploy/ 目录Rails 策略rails.rbpush 代码 → 执行rake db:migrate→ 重启开箱即用Sinatra 策略sinatra.rb只 push 代码不做迁移自定义策略继承base.rb里的HerokuSan::Deploy::Base重写deploy方法即可不同框架无需 fork 源码详细原理参见 examples/deploy_strategies.md。 进阶玩法自动打 tag 的多级发布在heroku.yml里为每个 stage 配置tag匹配模式如staging: ci/*、production: staging/*配合部署前后钩子就能实现ci → staging → production 逐级晋级的自动发布流程完整示例见 examples/auto_tagger.rake还能自动记录各环境的历史发布 tag。❓ 新手常见疑问Q1执行命令提示 You must first specify at least one Heroku app→ 必须先指定 stagerake production restart或rake all restart。Q2怎么确认各应用当前跑的是哪个版本→rake heroku:apps会显示每个应用对应的 git 提交号未部署过则显示 not deployed。Q3yml 里重复的 config 怎么写麻烦→ 用 YAML 锚点复用如config: default定义、config: *default引用示例见 lib/templates/heroku.example.yml。Q4维护模式可以成对自动开关吗→ 可以。Stage#maintenance支持传入代码块执行完自动关闭维护模式见 lib/heroku_san/stage.rb。 更多细节可查看项目内的 README.md 与 CHANGELOG.md。把这 29 个命令配合全局别名记熟Heroku 多应用运维基本可以脱稿操作了。【免费下载链接】heroku_sanHelpful stuffs for Heroku.项目地址: https://gitcode.com/gh_mirrors/he/heroku_san创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考