== Redmine upgrade

Redmine - project management software
Copyright (C) 2006-  Jean-Philippe Lang
https://www.redmine.org/


== Upgrading

1. Uncompress the program archive in a new directory

2. Copy your database settings (RAILS_ROOT/config/database.yml)
   and your configuration file (RAILS_ROOT/config/configuration.yml)
   into the new config directory
   Note: before Redmine 1.2, SMTP configuration was stored in
   config/email.yml. It should now be stored in config/configuration.yml.

3. Copy the RAILS_ROOT/files directory content into your new installation
   This directory contains all the attached files.

4. Copy the folders of the installed plugins and themes into new installation
   Plugins must be stored in the [redmine_root]/plugins directory
   Themes must be stored in the [redmine_root]/themes directory

   WARNING: plugins from your previous Redmine version may not be compatible
   with the Redmine version you're upgrading to.

5. Install the required gems by running:
     bundle install --without development test

   If ImageMagick is not installed on your system, you should skip the installation
   of the rmagick gem using:
     bundle install --without development test rmagick

   Only the gems that are needed by the adapters you've specified in your database
   configuration file are actually installed (eg. if your config/database.yml
   uses the 'mysql2' adapter, then only the mysql2 gem will be installed). Don't
   forget to re-run `bundle install` when you change config/database.yml for using
   other database adapters.

   If you need to load some gems that are not required by Redmine core (eg. fcgi),
   you can create a file named Gemfile.local at the root of your redmine directory.
   It will be loaded automatically when running `bundle install`.

6. Generate a session store secret

   If you're upgrading from Redmine 2.x or below, remove the following file
   if it exists: config/initializers/secret_token.rb

   Then generate a new secret by running the following command under the
   application directory:
     bin/rails generate_secret_token

   Alternatively, you can store this secret in config/secrets.yml:
   https://guides.rubyonrails.org/upgrading_ruby_on_rails.html#config-secrets-yml

   DO NOT REPLACE OR EDIT ANY OTHER FILES.

7. Compile assets (optional)

   Compile the assets such as stylesheets, javascripts and images into the public/assets
   directory for web server delivery.

   By default, Redmine automatically recompiles assets in production mode when the application starts.
   This behavior can be controlled using the "config.assets.redmine_detect_update" flag from configuration file.

   To manually compile assets or if automatic compilation is disabled:

   using:
     bin/rails assets:precompile RAILS_ENV="production"

   If deploying to a sub-uri, set the relative URL root as follows:
     bin/rails assets:precompile RAILS_ENV="production" RAILS_RELATIVE_URL_ROOT=/sub-uri

   If you experience issues with missing assets in the browser, try
   removing the public/assets directory before re-running the precompile:
     bin/rails assets:clobber RAILS_ENV="production"

8. Migrate your database

   Please make a backup before doing this! Under the new application
   directory run:
     bin/rails db:migrate RAILS_ENV="production"

   If you have installed any plugins, you should also run their database
   migrations using:
     bin/rails redmine:plugins:migrate RAILS_ENV="production"

9. Clear the cache and the existing sessions by running:
     bin/rails tmp:cache:clear tmp:sessions:clear

10. Restart the application server (e.g. mongrel, thin, passenger)

11. Finally go to "Administration -> Roles & permissions" to check/set permissions
    for new features, if any

== References

* https://www.redmine.org/projects/redmine/wiki/RedmineUpgrade
