Updating a site from Radiant 0.6.9 to 0.7.1
The transition from Radiant 0.6.x to 0.7.x has a few potential pitfalls. This article lists the straightforward upgrade instructions, followed by a troubleshooting section, which includes common errors and their workarounds.
The following instructions are taken from the release notes for Radiant 0.7.1
- To install use the gem command (with ‘sudo’ as necessary):
gem install radiant
- Change the RADIANT_GEM_VERSION constant in config/environment.rb to “0.7.1” or remove it altogether.
- Update the Radiant assets in your project:
rake radiant:update
- Copy your customizations back into config/environment.rb, if necessary.
- Migrate the database:
rake production db:migrate
- Restart the server
-
When you run
rake radiant:update
, you see something like:can't activate rspec (= 1.1.12, runtime), already activated rspec-1.2.0
-
If you have any versions of rspec newer than 1.1.12, you will have to uninstall them. Run the following to see which versions of rspec you have:
gem list | grep rspec
If this were to output, for example:
rspec (1.2.6, 1.2.4, 1.1.3, 1.1.12, 1.1.1)
Then you should run the following commands:
sudo gem uninstall rspec -v=1.2.6 sudo gem uninstall rspec -v=1.2.4 sudo gem uninstall rspec -v=1.1.3
Try running
rake radiant:update
again. You should no longer see the error message concerning RSpec (although you may run into one of the other problems listed here).When you successfully run
rake radiant:update
, you should be able to reinstall the newer versions of RSpec again. -
When you run
rake radiant:update
, you see something like:rake radiant:update --trace rake aborted! uninitialized constant Admin::PageController
-
Many extensions were broken by changes in version 0.7 of Radiant. Extension developers were advised to ‘tag’ their extensions as 0.6.9, before fixing them to work with version 0.7. For each extension you have installed in your 0.6.9 site, check to see if it has been updated to work with 0.7. If there is a version for 0.7, then install that in place of your existing 0.6 version.
Some extensions will not have been affected by the update from 0.6 to 0.7. If you are unsure whether an extension is safe for 0.7, take a look inside the
/app/controllers
directory. If there are controllers with names likepage_controller_extensions
(note in particular, that page is singular), then it is probably not ready for 0.7. -
When you try to start the server, or run any rake task, the following is output:
Missing the Radiant 0.7.1 gem. Please `gem install -v=0.7.1 rails`, update your RADIANT_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RADIANT_GEM_VERSION to use the latest version installed.
Even though running
gem list
shows that you have the Radiant 0.7.1 gem installed. -
By unpacking the gem into the vendor directory, we can force Radiant to boot up using that specific version, rather than by loading the gem from the usual path. This workaround has some resemblance to the practice of running Radiant on edge, except we’ll be using a stable version, instead of the bleeding edge.
cd vendor gem unpack radiant -v=0.7.1 # this creates a directory called radiant-0.7.1 # rename it mv radiant-0.7.1/ radiant/
You should now be able to run rake tasks and restart your server without seeing a message about “Missing the Radiant 0.7.1 gem”.