RedmineUpgrade » History » Version 59
Etienne Massip, 2012-06-06 14:37
Made statement about upgrading target version more explicit.
1 | 1 | Jean-Philippe Lang | h1. Upgrading |
---|---|---|---|
2 | |||
3 | 59 | Etienne Massip | p{color:red}. The documentation below is based on upgrading to Redmine 2.x. |
4 | You can view a previous version for upgrading to Redmine 1.x "here":/projects/redmine/wiki/RedmineUpgrade?version=53. |
||
5 | 56 | Etienne Massip | |
6 | 15 | Eric Davis | {{>toc}} |
7 | 1 | Jean-Philippe Lang | |
8 | 15 | Eric Davis | h2. Step 1 - Check requirements |
9 | 1 | Jean-Philippe Lang | |
10 | 15 | Eric Davis | The first step to upgrading Redmine is to check that you meet the [[RedmineInstall#Requirements|requirements]] for the version you're about to install. |
11 | |||
12 | h2. Step 2 - Backup |
||
13 | |||
14 | It is recommended that you backup your database and file uploads. Most upgrades are safe but it never hurts to have a backup just in case. |
||
15 | |||
16 | h3. Backing up the files |
||
17 | |||
18 | 37 | Ed Ruder | All file uploads are stored to the @files/@ directory. You can copy the contents of this directory to another location to easily back it up. |
19 | 15 | Eric Davis | |
20 | h3. MySQL database |
||
21 | |||
22 | 38 | T. Hauptman | The @mysqldump@ command can be used to backup the contents of your MySQL database to a text file. For example: |
23 | <pre> |
||
24 | /usr/bin/mysqldump -u <username> -p<password> <redmine_database> | gzip > /path/to/backup/db/redmine_`date +%y_%m_%d`.gz |
||
25 | </pre> |
||
26 | |||
27 | 15 | Eric Davis | |
28 | h3. SQLite database |
||
29 | |||
30 | SQLite databases are all contained in a single file, so you can back them up by copying the file to another location. |
||
31 | |||
32 | h3. PostgreSQL |
||
33 | |||
34 | 39 | Anonymous | The @pg_dump@ command can be used to backup the contents of a PostgreSQL database to a text file. Here is an example: |
35 | <pre> |
||
36 | /usr/bin/pg_dump -U <username> -Fc --file=redmine.sqlc <redmine_database> |
||
37 | </pre> |
||
38 | A decent blog (self plug) can be found here: http://www.commandprompt.com/blogs/joshua_drake/2010/07/a_better_backup_with_postgresql_using_pg_dump/ |
||
39 | 15 | Eric Davis | |
40 | h2. Step 3 - Perform the upgrade |
||
41 | |||
42 | 36 | digi byte | Now it's time to perform the actual upgrade. This process is different depending on how you downloaded Redmine. You only need to perform *one* of the following options. |
43 | 15 | Eric Davis | |
44 | 40 | Cyber Sprocket | h3. Option 1 - [[Download|Downloaded release]] (tar.gz or zip file) |
45 | 15 | Eric Davis | |
46 | 1. Uncompress the new program archive in a new directory. |
||
47 | |||
48 | 51 | Jean-Philippe Lang | 2. Copy your database settings-file @config/database.yml@ into the new @config@ directory. If you're running Redmine >= 1.4 with mysql and ruby1.9, change the database adapter to `mysql2`. |
49 | 15 | Eric Davis | |
50 | 48 | Etienne Massip | 3a. Copy your base configuration settings-file @config/configuration.yml@ into the new @config@ directory. |
51 | |||
52 | 3b. Or, *if upgrading from version older than 1.2.0*, copy your email settings from your @config/email.yml@ into the new @config/configuration.yml@ file that can be created by copying the available @configuration.yml.example@ file. |
||
53 | 15 | Eric Davis | |
54 | 46 | Etienne Massip | 4. Copy the @files@ directory content into your new installation. |
55 | 15 | Eric Davis | |
56 | 54 | Etienne Massip | 5. Copy the folders of your *custom* installed plugins from your @vendor/plugins@ directory (if upgrading from a version prior to version:2.0.0) or @plugins@ directory (else, upgrading from a version >= version:2.0.0) into new installation @plugins@ directory. Make sure that you copy only plugins that are were not initially bundled with your previous Redmine setup. |
57 | 19 | Jean-Philippe Lang | |
58 | 46 | Etienne Massip | 6. Run the following command from your new Redmine root directory: |
59 | 29 | Jean-Philippe Lang | |
60 | rake config/initializers/session_store.rb |
||
61 | |||
62 | 31 | Thanos Kyritsis | If you're using a newer version of Redmine, the above file will no longer exist. On these versions, run |
63 | |||
64 | rake generate_session_store |
||
65 | |||
66 | 29 | Jean-Philippe Lang | This will generate a file (@config/initializers/session_store.rb@) with a random secret used to secure session data. |
67 | 22 | Brad Langhorst | |
68 | 46 | Etienne Massip | 7. Check for any themes that you may have installed in the @public/themes@ directory. You can copy them over but checking for updated version is ideal. |
69 | 26 | salt racer | |
70 | 19 | Jean-Philippe Lang | VERY IMPORTANT: do NOT overwrite @config/settings.yml@ with the old one. |
71 | 17 | Erick Pérez Castellanos | |
72 | 16 | Eric Davis | h3. Option 2 - Upgrading from a SVN [[CheckingoutRedmine|checkout]] |
73 | 15 | Eric Davis | |
74 | 2 | Jean-Philippe Lang | 1. Go to the Redmine root directory and run the following command: |
75 | 1 | Jean-Philippe Lang | <pre> |
76 | svn update |
||
77 | </pre> |
||
78 | |||
79 | 25 | Mischa The Evil | 2. If you are upgrading from an older version to 0.8.7+ or from the trunk version of Redmine to r2493 or above, you must generate a secret for cookie store. See the note at the bottom about generating a @session_store@. |
80 | 15 | Eric Davis | |
81 | h2. Step 4 - Update the database |
||
82 | |||
83 | This step is the one that could change the contents of your database. Go to your new redmine directory, then migrate your database: |
||
84 | |||
85 | 1 | Jean-Philippe Lang | <pre> |
86 | 28 | rafael mascayano | rake db:migrate RAILS_ENV=production |
87 | 1 | Jean-Philippe Lang | </pre> |
88 | |||
89 | 55 | Etienne Massip | If you have installed any plugins, you should also run their database migrations: |
90 | 18 | Ethan Fremen | |
91 | <pre> |
||
92 | 55 | Etienne Massip | rake db:plugins:migrate RAILS_ENV=production |
93 | 1 | Jean-Philippe Lang | </pre> |
94 | |||
95 | 15 | Eric Davis | h2. Step 5 - Clean up |
96 | 1 | Jean-Philippe Lang | |
97 | 15 | Eric Davis | 1. You should clear the cache and the existing sessions: |
98 | 1 | Jean-Philippe Lang | <pre> |
99 | rake tmp:cache:clear |
||
100 | 10 | Azamat Hackimov | rake tmp:sessions:clear |
101 | 3 | Jean-Philippe Lang | </pre> |
102 | 12 | Mischa The Evil | |
103 | 15 | Eric Davis | 2. Restart the application server (e.g. mongrel, thin, passenger) |
104 | 12 | Mischa The Evil | |
105 | 15 | Eric Davis | 3. Finally go to _"Admin -> Roles & permissions"_ to check/set permissions for the new features, if any. |
106 | 1 | Jean-Philippe Lang | |
107 | 15 | Eric Davis | h2. Common issues |
108 | 10 | Azamat Hackimov | |
109 | 30 | Zach Gardner | h3. Errors with repository management |
110 | |||
111 | There were several new features added to the reposman.rb file, make sure you have a group specified if you're having issues ( --group=groupnamehere). Also, make sure you follow the instructions [[Repositories_access_control_with_apache_mod_dav_svn_and_mod_perl|here]] again if you only copied your Redmine.pm, and update your Apache configuration as the recommended configuration has changed. |
||
112 | |||
113 | 58 | Etienne Massip | h3. Generating a new @secret_token.rb@ |
114 | 1 | Jean-Philippe Lang | |
115 | 58 | Etienne Massip | Before version:2.0.0, a @session_store.rb@ file needed to be generated in Redmine's @config@ directory for the cookie based sessions to work. |
116 | 1 | Jean-Philippe Lang | |
117 | 58 | Etienne Massip | Starting from version:2.0.0, the @session_store.rb@ file should not exist. Instead, the following command will generate the @secret_token.rb@ file: |
118 | 52 | Etienne Massip | |
119 | @rake generate_secret_token@ |
||
120 | |||
121 | 58 | Etienne Massip | _Note: The code repository for Redmine does not contain the config/initializers/secret_token.rb file, it is created by the above rake command._ |
122 | 15 | Eric Davis | |
123 | h3. Errors about a missing session_store.rb |
||
124 | |||
125 | If you see any errors about a missing @session_store.rb@ file, run the command above to create a new one. |
||
126 | 1 | Jean-Philippe Lang | |
127 | 33 | Cyber Sprocket | h3. Error about member_roles |
128 | |||
129 | If you have had a failed upgrade/migration in the past then you may have a member_roles and/or group_users table already created. The db migration noted above will fail. Simply rename the tables by logging into MySQL command line and executing the rename table command: |
||
130 | |||
131 | @mysql> rename table member_roles to member_roles_saved |
||
132 | 34 | Cyber Sprocket | mysql> rename table groups_users to groups_users_saved |
133 | 33 | Cyber Sprocket | @ |
134 | 32 | Szymon Połom | |
135 | 35 | Cyber Sprocket | |
136 | 32 | Szymon Połom | h3. Error about "undefined method `add_frozen_gem_path'" |
137 | |||
138 | If you see this error, check if the directory @vendor/rails@ exists and remove or rename it if it does, it might have an old RoR version. |
||
139 | 35 | Cyber Sprocket | |
140 | h3. Related Resources |
||
141 | |||
142 | These resources may help you with your Redmine upgrade: |
||
143 | |||
144 | 45 | Jean-Philippe Lang | * "mod_fcgid for Apache2":http://httpd.apache.org/mod_fcgid/ helped us get Rails running on Apache 2 |
145 | 35 | Cyber Sprocket | * "Running Redmine on Apache":http://www.redmine.org/wiki/redmine/HowTo_configure_Apache_to_run_Redmine |
146 | 41 | Cyber Sprocket | * "Notes about our 0.8.6 to 0.9.3 upgrade issues and how to resolve them":http://www.cybersprocket.com/2010/project-management/upgrading-redmine-from-8-6-to-9-3/ --cybersprocket (2010-04-25) |
147 | * "Notes about our 0.9.6 to 1.0(RC) upgrade process":http://www.cybersprocket.com/2010/tips-tricks/upgrading-redmine-from-0-9-6-to-1-0-0/ --cybersprocket (2010-08-14) |