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.
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
gem 'rails', '3.1.12'
For more information, please read the Upgrading Ruby on Rails Guide.
For best results, use the 0-70-stable branch from GitHub:
gem 'spree', github: 'spree/spree', branch: '0-70-stable'
bundle update rails and
bundle update spree and verify that was successful.
Remove debug_rjs configuration
config/environments/development.rb, remove this line:
config.action_view.debug_rjs = true
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
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.