Should I freeze my Rails application? From tigertech.net 翻译 coffeeworks.cn 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 参考: 请freeze你的Rails!
分享到:
相关推荐
自制 命令: rails doc cd doc rake rails:freeze:gems 或 rake rails:freeze:edge rake doc:rails 在rails_app/doc/doc/目录中就生成了一个API目录,即可
- `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的流体使用状态。 - `...
6. **后端服务**:虽然主要标签是HTML,但实际项目可能还包括后端服务,比如Node.js、Python Flask或Ruby on Rails,用于处理数据提交、验证和查询等复杂逻辑。 7. **数据库**:如果项目需要存储大量会员数据,可能...
run 怎么做的: 维护测试架构将加载spec/support/**.rb以在项目中覆盖describe 'what', freeze_time: '2018-01-01 12:00' do Tag的例子。 如果有Timecop,将使用它,否则Rails 5.x默认travel_to Simplecov覆盖率...
:双时态安装将此行添加到您的应用程序的Gemfile中: gem 'activerecord-bitemporal' 然后执行: $ bundle或将其自己安装为: $ gem install activerecord-bitemporal概述activerecord-bitemporal是一个用于在Rails ...
时间表 描述 一个提供“时间旅行”和“时间冻结”功能的gem,使测试依赖于... 适用于常规Ruby项目和Ruby on Rails项目 用法 运行时间敏感的测试 joe = User . find ( 1 ) joe . purchase_home ( ) assert ! joe . mo