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
分享到:
相关推荐
- `rake rails:freeze:edge`: 锁定应用程序使用最新的 Edge Rails。 - `rake rails:freeze:gems`: 锁定应用程序使用当前的 gems(通过解压 gems 到 vendor 目录下)。 - **解锁版本**: - `rake rails:unfreeze`:...
- `rake rails:freeze:gems`: 锁定应用到当前版本的gems(通过解压到vendor/rails目录下)。 - `rake rails:unfreeze`: 解锁应用,使其不再使用冻结的gems或Edge Rails,并返回到系统gems的流体使用状态。 - `...
自制 命令: rails doc cd doc rake rails:freeze:gems 或 rake rails:freeze:edge rake doc:rails 在rails_app/doc/doc/目录中就生成了一个API目录,即可
提供用于Rails 4.x(及更高版本)资产管道的Sprockets实现。 安装 gem 'sprockets-rails' , :require => 'sprockets/railtie' 或者,如果禁用了Bundler自动请求功能,则在config/application.rb require 'sprockets...
没有Rails的ActiveRecord 只是在没有Rails的情况下使用ActiveRecord迁移的简单示例您可以执行的任务: rake db:create rake db:migrate rake db:dropRails 5+的注意事项请注意,即使使用Rails 5,您也需要rake db:...
flyway-rails 用于 Rails 数据库迁移的薄包装器 添加 rake 任务来管理您的数据库架构。 将此 gem 添加到您的 Rails 应用程序中: gem 'flyway-rails', github: 'bluerogue251/flyway-rails' 在应用程序的初始化...
Ridgepole-rails提供了两个Rake任务: ridgepole:export和ridgepole:apply它们分别包装的ridgepole --export和ridgepole --apply 。 用法 要将数据库的当前架构导出到Schemafile rake ridgepole:export 将Schema...
在Rails中,`scope`主要用于模型类中,但也可以在其他地方使用,例如路由配置或Rake任务等。 #### `scope`的实现 在ActiveRecord模块中,`scope`方法定义在`ActiveRecord::Scoping::Named::ClassMethods`模块中。...
Capistrano :: Rails :: Db Capistrano v3的Rails迁移任务: 在终端中运行cap -T deploy:db以获取迁移任务的完整列表: cap deploy:db:abort_if_pending_migrations # Run rake db:abort_if_pending_migrations ...
化身对于Rails开发 Avatars For Rails 是一个完整的解决方案,可为模型提供头像支持。 它包括一个数据库迁移和带有 jquery.fileupload 和 jquery.jcrop 的视图 ...rake db: migrate 在您的模型中,您必须包括
白俄罗斯Ruby用户组 白俄罗斯语Ruby用户组-Ruby开发人员社区,旨在交流思想和经验。 我们也对Ruby在我国的发展感兴趣,并互相帮助建立成功的IT事业。 发展 要在本地运行应用程序: ... RAILS_ENV=test ra
Twilio支持的自动调查-Ruby on Rails 使用Twilio实现自动语音调查的示例应用程序。 有关分步教程, 。 安装 要在您的计算机上本地运行此命令: 抢最新资料 git clone git://github....
《rake-0.8.7:Rails开发中的核心工具》 在Ruby on Rails框架中,`rake`是一个不可或缺的工具,它扮演着构建、部署和管理任务的角色。Rake,全称为“Ruby Make”,是Ruby语言的一个构建系统,灵感来源于Perl的Make...
审计轨道 它为您的 rails 应用程序生成审计跟踪,并提供开箱即用的分析! 它的灵感来自 rails 社区中许多很棒的审计 gems 审计模型,我正在寻找一种可以基于操作进行审计以及可以审计链接跟踪... rake audit_rails:in
替换为ember-cli / rails项目: Crambear Crambear是一个用Rails和EmberJs编写的闪存卡应用程序。 其目的是提供一个实际的Ember.js应用程序的简单示例。 非平凡的意思是,有些东西将不仅仅是1或2个模型,而除了...
泊坞窗 要在Rails应用程序中复制和修改的基本文件。 要求 码头工人 Docker撰写 VirtualBox或本机linux文件... 运行docker-compose run web bundle exec rake db:migrate 如果您有种子文件,请运行docker-compose run
安装: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...
rake db:migrate 还有一件事,启动服务器: rails server 完毕! 转至 API文档 会话名称: _todos_session 会话必须包含在每个请求的标头中。 获取当前用户的所有待办事项: GET 'http://host/todos/all' 响应 ...
gem 'neo-rails', '~> 0.4.1' 然后执行: $ bundle 或将其自己安装为: $ gem install neo-rails 您可以使用以下方法为演示者,模拟和视图模型生成基类: $ rake neo-rails:setup用法发电机创建文件和测试......
effilab-rails 将Adwords API集成到Rails 6.1应用程序中要求: Ruby版本2.7.2 系统依赖性PostgreSQL版本13.0 在应用程序的根目录下的配置编辑.env文件数据库创建bundle exec rails db:create 数据库初始化bundle ...