This guide covers upgrading a 0.60.x Spree store, to a 0.70.x store. This guide has been written from the perspective of a blank Spree 0.60.x store with no extensions.
If you have extensions that your store depends on, you will need to manually verify that each of those extensions work within your 0.70.x store once this upgrade is complete.
Upgrade Rails
Spree 0.60.x depends on Rails 3.0.12, whereas Spree 0.70.x depends on any Rails
version from 3.1.1 up to 3.1.4. The first step in upgrading Spree is to
upgrade the Rails version in the Gemfile
:
gem 'rails', '3.1.12'
For more information, please read the Upgrading Ruby on Rails Guide.
Upgrade Spree
For best results, use the 0-70-stable branch from GitHub:
gem 'spree', :github => 'spree/spree', :branch => '0-70-stable'
Run bundle update rails
and bundle update spree
and verify that was successful.
Remove debug_rjs configuration
In config/environments/development.rb
, remove this line:
config.action_view.debug_rjs = true
Remove lib/spree_site.rb
This file is no longer used in 0.70.x versions of Spree.
Set up new data
To migrate the data across, use these commands:
rails g spree:site rake db:migrate
The Asset Pipline
With the upgrade to Rails 3.1 comes the asset pipeline. You need to add these gems to your Gemfile in order to support Spree’s assets being served:
group :assets do gem 'sass-rails', '~> 3.1.5' gem 'coffee-rails', '~> 3.1.1' # See https://github.com/sstephenson/execjs#readme for more supported runtimes # gem 'therubyracer' gem 'uglifier', '>= 1.0.3' end gem 'jquery-rails', '2.2.1'
Along with these gems, you will need to enable assets within the class definition inside config/application.rb
:
module YourStore class Application < Rails::Application # ... # Enable the asset pipeline config.assets.enabled = true # Version of your assets, change this if you want to expire all your assets config.assets.version = '1.0' end end
Verify that everything is OK
Click around in your store and make sure it’s performing as normal. Fix any deprecation warnings you see.