`
sunchaohui_koko
  • 浏览: 59035 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

rake rails:freeze

阅读更多

Ruby on Rails允许你”冻结”你的应用使用的Rails版本。当你冻结Rails时,你的应用将会一直使用冻结的版本,并且和Ruby Gems相关联,与当前服务器上跑的Rails版本无关。你可以将应用冻结到你想要的版本。

当你的Rails程序用在商业站点或其它对稳定性要求较高的生产环境时,冻结你的Rails版本是推荐使用的。(如果你不冻结的话,你的Rails应用可能因版本升级后的兼容性问题而停止)。然而你需要注意的是,如果你的应用冻结到当前或是更老的版本后,你将不会获得自动升级后的安全性好处。你需要及时跟踪当前的Rails版本(比如通过订阅Rails的邮件列表),必要的话升级你的应用。

冻结Rails
要冻结你的Rails程序,你需要
1.打开SSH或Telnet终端,登录到服务器上
2.切换到你要冻结的Rails应用目录下。
例如,你创建了一个”test”应用

> rails test
> cd test

3.执行下面的命令,冻结你的Rails程序到当前服务器上的版本

rake rails:freeze:gems

这将拷贝Rails的相关文件到你的程序”vendor/rails”下。当程序运行时,你的应用会首先检查这个目录下存在的文件,如果存在的话,Rails会加载该目录下的Rails组件而不会使用服务器上当前版本的Rails。只要你不删除这些文件,你的应用将会继续被冻结。

解冻Rails
如果你决定切换回当前服务器上的Rails版本,你可以通过下面命令移除冷冻的版本:

rake rails:unfreeze

冻结到不同的版本
上面我们叙述了如何将你的Rails程序冻结到当前服务器上的版本,Rails允许你将程序冻结几乎任何一个版本。
例如,下面的命令可以将你的程序冻结到Rails 1.0.0

rake rails:freeze:edge TAG=rel_1-0-0

冻结到当前开发的版本

rake rails:freeze:edge

当升级的时候,冻结不同的Rails版本是很有用的。假如你创建了一个rails应用并冻结到1.1.5以保证稳定,当你意识到rails需要升级(版本1.1.6可用了),你可以在服务器比较空闲的时候对冻结的版本进行升级:

rake rails:freeze:edge TAG=rel_1-1-6

然后测试你的应用以确保可以工作,如果没有问题,将使用最新的Rails。如果有问题,你可以再恢复之前的版本直到你确定问题所在。

rake rails:freeze:edge TAG=rel_1-1-5

BTW:你可以通过下面命令查看当前rails应用的版本

ruby script/about

分享到:
评论
1 楼 yekki 2010-07-06  
rake rails:freeze:gem与rake rails:freeze:edge是否在效果上一样?

相关推荐

    java基础之rails命令大全.pdf

    - `rake rails:freeze:edge`: 锁定应用程序使用最新的 Edge Rails。 - `rake rails:freeze:gems`: 锁定应用程序使用当前的 gems(通过解压 gems 到 vendor 目录下)。 - **解锁版本**: - `rake rails:unfreeze`:...

    ruby命令集合(一些有用的命令)

    - `rake rails:freeze:gems`: 锁定应用到当前版本的gems(通过解压到vendor/rails目录下)。 - `rake rails:unfreeze`: 解锁应用,使其不再使用冻结的gems或Edge Rails,并返回到系统gems的流体使用状态。 - `...

    rails API(html)

    自制 命令: rails doc cd doc rake rails:freeze:gems 或 rake rails:freeze:edge rake doc:rails 在rails_app/doc/doc/目录中就生成了一个API目录,即可

    sprockets-rails:Sprockets Rails集成

    提供用于Rails 4.x(及更高版本)资产管道的Sprockets实现。 安装 gem 'sprockets-rails' , :require => 'sprockets/railtie' 或者,如果禁用了Bundler自动请求功能,则在config/application.rb require 'sprockets...

    ActiveRecord-Without-Rails:只是在没有Rails的情况下使用ActiveRecord迁移的简单示例

    没有Rails的ActiveRecord 只是在没有Rails的情况下使用ActiveRecord迁移的简单示例您可以执行的任务: rake db:create rake db:migrate rake db:dropRails 5+的注意事项请注意,即使使用Rails 5,您也需要rake db:...

    flyway-rails:用于 Rails 数据库迁移的 Flyway 周围的薄包装器

    flyway-rails 用于 Rails 数据库迁移的薄包装器 添加 rake 任务来管理您的数据库架构。 将此 gem 添加到您的 Rails 应用程序中: gem 'flyway-rails', github: 'bluerogue251/flyway-rails' 在应用程序的初始化...

    ridgepole-rails:在RoR上使用ridgepole的便捷任务

    Ridgepole-rails提供了两个Rake任务: ridgepole:export和ridgepole:apply它们分别包装的ridgepole --export和ridgepole --apply 。 用法 要将数据库的当前架构导出到Schemafile rake ridgepole:export 将Schema...

    Ruby on Rails: the scope method

    在Rails中,`scope`主要用于模型类中,但也可以在其他地方使用,例如路由配置或Rake任务等。 #### `scope`的实现 在ActiveRecord模块中,`scope`方法定义在`ActiveRecord::Scoping::Named::ClassMethods`模块中。...

    capistrano-rails-db:Capistrano v3的Rails迁移任务(db

    Capistrano :: Rails :: Db Capistrano v3的Rails迁移任务: 在终端中运行cap -T deploy:db以获取迁移任务的完整列表: cap deploy:db:abort_if_pending_migrations # Run rake db:abort_if_pending_migrations ...

    avatars_for_rails:用于管理头像的 Rails gem

    化身对于Rails开发 Avatars For Rails 是一个完整的解决方案,可为模型提供头像支持。 它包括一个数据库迁移和带有 jquery.fileupload 和 jquery.jcrop 的视图 ...rake db: migrate 在您的模型中,您必须包括

    belarus-ruby-on-rails:白俄罗斯Ruby on Rails用户组

    白俄罗斯Ruby用户组 白俄罗斯语Ruby用户组-Ruby开发人员社区,旨在交流思想和经验。 我们也对Ruby在我国的发展感兴趣,并互相帮助建立成功的IT事业。 发展 要在本地运行应用程序: ... RAILS_ENV=test ra

    survey-rails:基于Rails的自动测量应用程序

    Twilio支持的自动调查-Ruby on Rails 使用Twilio实现自动语音调查的示例应用程序。 有关分步教程, 。 安装 要在您的计算机上本地运行此命令: 抢最新资料 git clone git://github....

    rake-0.8.7

    《rake-0.8.7:Rails开发中的核心工具》 在Ruby on Rails框架中,`rake`是一个不可或缺的工具,它扮演着构建、部署和管理任务的角色。Rake,全称为“Ruby Make”,是Ruby语言的一个构建系统,灵感来源于Perl的Make...

    audit_rails:使用图表分析对 crud 和链接跟踪进行审计跟踪

    审计轨道 它为您的 rails 应用程序生成审计跟踪,并提供开箱即用的分析! 它的灵感来自 rails 社区中许多很棒的审计 gems 审计模型,我正在寻找一种可以基于操作进行审计以及可以审计链接跟踪... rake audit_rails:in

    crambear-rails:用railsember.js编写的闪存卡站点

    替换为ember-cli / rails项目: Crambear Crambear是一个用Rails和EmberJs编写的闪存卡应用程序。 其目的是提供一个实际的Ember.js应用程序的简单示例。 非平凡的意思是,有些东西将不仅仅是1或2个模型,而除了...

    docker-rails:基础Docker Rails

    泊坞窗 要在Rails应用程序中复制和修改的基本文件。 要求 码头工人 Docker撰写 VirtualBox或本机linux文件... 运行docker-compose run web bundle exec rake db:migrate 如果您有种子文件,请运行docker-compose run

    migration:来自卢甘斯克、顿涅茨克地区、克里米亚自治共和国和塞瓦斯托波尔的移民登记册

    安装:git pull RAILS_ENV=test rake db:migrate RAILS_ENV=test rake db:seed RAILS_ENV=test rake vacancy:seed RAILS_ENV=test rake koatuu:seed RAILS_ENV=测试包 RAILS_ENV=测试 rake 资产:预编译 RAILS_ENV...

    todos-rails:适用于 Ruby on Rails 的 Todolist 应用程序

    rake db:migrate 还有一件事,启动服务器: rails server 完毕! 转至 API文档 会话名称: _todos_session 会话必须包含在每个请求的标头中。 获取当前用户的所有待办事项: GET 'http://host/todos/all' 响应 ...

    neo-rails:一些Rails助手,包括模拟,演示者,曝光和场景

    gem 'neo-rails', '~> 0.4.1' 然后执行: $ bundle 或将其自己安装为: $ gem install neo-rails 您可以使用以下方法为演示者,模拟和视图模型生成基类: $ rake neo-rails:setup用法发电机创建文件和测试......

    effilab-rails:effilab技术测试

    effilab-rails 将Adwords API集成到Rails 6.1应用程序中要求: Ruby版本2.7.2 系统依赖性PostgreSQL版本13.0 在应用程序的根目录下的配置编辑.env文件数据库创建bundle exec rails db:create 数据库初始化bundle ...

Global site tag (gtag.js) - Google Analytics