]> git.evergreen-ils.org Git - working/Evergreen.git/blob - docs/installation/server_upgrade.txt
LP#1390138: Updated upgrade docs for 2.7.1.
[working/Evergreen.git] / docs / installation / server_upgrade.txt
1 Upgrading the Evergreen Server
2 ------------------------------
3 Before upgrading, it is important to carefully plan an upgrade strategy to minimize system downtime and service interruptions.
4 All of the steps in this chapter are to be completed from the command line.
5
6 Software Prerequisites
7 ~~~~~~~~~~~~~~~~~~~~~~
8
9   * **PostgreSQL**: Version 9.1 is recommended. The minimum supported version
10     is 9.1.
11   * **Linux**: Evergreen 2.7 has been tested on Debian Jessie (8.0), Debian Wheezy (7.0), Debian Squeeze (6.0),
12     Ubuntu Trusty Tahr (14.04), Ubuntu Precise Pangolin (12.04) and Ubuntu Lucid Lynx (10.04). If you are
13     running an older version of these distributions, you may want to upgrade
14     before upgrading Evergreen. For instructions on upgrading these
15     distributions, visit the Debian or Ubuntu websites.
16   * **OpenSRF**: The minimum supported version of OpenSRF is 2.4.0.
17
18 In the following instructions, you are asked to perform certain steps as either the root or opensrf user.
19
20   * **Debian**: To become the root user, issue the `su` command and enter the password of the root user.
21   * **Ubuntu**: To become the root user, issue the `sudo su` command and enter the password of your current user.
22
23 To switch from the root user to a different user, issue the `su - [user]`
24 command; for example, `su - opensrf`. Once you have become a non-root user, to
25 become the root user again simply issue the `exit` command.
26
27 Upgrade the Evergreen code
28 ~~~~~~~~~~~~~~~~~~~~~~~~~~
29 The following steps guide you through a simplistic upgrade of a production
30 server. You must adjust these steps to accommodate your customizations such
31 as catalogue skins.
32
33 . Stop Evergreen and back up your data:
34  .. As root, stop the Apache web server.
35  .. As the opensrf user, stop all Evergreen and OpenSRF services:
36 +
37 [source, bash]
38 -----------------------------
39 osrf_control --localhost --stop-all
40 -----------------------------
41 +
42  .. Back up the /openils directory.
43 . Upgrade OpenSRF. Download and install the latest version of OpenSRF from
44 the http://evergreen-ils.org/opensrf-downloads/[OpenSRF download page].
45 . As the opensrf user, download and extract Evergreen 2.7:
46 +
47 [source, bash]
48 -----------------------------------------------
49 wget http://evergreen-ils.org/downloads/Evergreen-ILS-2.7.1.tar.gz
50 tar xzf Evergreen-ILS-2.7.1.tar.gz
51 -----------------------------------------------
52 +
53 [NOTE]
54 For the latest edition of Evergreen, check the http://evergreen-ils.org/egdownloads/[Evergreen download page] and adjust upgrading instructions accordingly.
55
56 . As the root user, install the prerequisites:
57 +
58 [source, bash]
59 ---------------------------------------------
60 cd /home/opensrf/Evergreen-ILS-2.7.1
61 ---------------------------------------------
62 +
63 On the next command, replace `[distribution]` with one of these values for your
64 distribution of Debian or Ubuntu:
65 +
66 indexterm:[Linux, Debian]
67 indexterm:[Linux, Ubuntu]
68 +
69   * `debian-jessie` for Debian Jessie (8.0) (See https://bugs.launchpad.net/evergreen/+bug/1342227[Bug 134222] if you want to use EDI)
70   * `debian-wheezy` for Debian Wheezy (7.0)
71   * `debian-squeeze` for Debian Squeeze (6.0)
72   * `ubuntu-trusty` for Ubuntu Trusty Tahr (14.04) (See https://bugs.launchpad.net/evergreen/+bug/1342227[Bug 134222] if you want to use EDI)
73   * `ubuntu-precise` for Ubuntu Precise Pangolin (12.04)
74   * `ubuntu-lucid` for Ubuntu Lucid Lynx (10.04)
75
76 +
77 [source, bash]
78 ------------------------------------------------------------
79 make -f Open-ILS/src/extras/Makefile.install [distribution]
80 ------------------------------------------------------------
81 +
82 . As the opensrf user, configure and compile Evergreen:
83 +
84 [source, bash]
85 ------------------------------------------------------------
86 cd /home/opensrf/Evergreen-ILS-2.7.1
87 PATH=/openils/bin:$PATH ./configure --prefix=/openils --sysconfdir=/openils/conf
88 make
89 ------------------------------------------------------------
90 +
91 These instructions assume that you have also installed OpenSRF under /openils/. If not, please adjust PATH as needed so that the Evergreen configure script can find osrf_config.
92 +
93 . As the root user, install Evergreen:
94 +
95 [source, bash]
96 ------------------------------------------------------------
97 cd /home/opensrf/Evergreen-ILS-2.7.1
98 make STAFF_CLIENT_STAMP_ID=rel_2_7_1 install
99 ------------------------------------------------------------
100 +
101 . As the root user, change all files to be owned by the opensrf user and group:
102 +
103 [source, bash]
104 ------------------------------------------------------------
105 chown -R opensrf:opensrf /openils
106 ------------------------------------------------------------
107 +
108 . As the opensrf user, update the server symlink in /openils/var/web/xul/:
109 +
110 [source, bash]
111 -----------------------------------------------------------
112 cd /openils/var/web/xul/
113 rm server
114 ln -sf rel_2_6_1/server server
115 ----------------------------------------------------------
116 +
117 . As the opensrf user, update opensrf_core.xml and opensrf.xml by copying the
118   new example files (/openils/conf/opensrf_core.xml.example and
119   /openils/conf/opensrf.xml). The _-b_ option creates a backup copy of the old file.
120 +
121 [source, bash]
122 ----------------------------------------------------------
123 cp -b /openils/conf/opensrf_core.xml.example /openils/conf/opensrf_core.xml
124 cp -b /openils/conf/opensrf.xml.example /openils/conf/opensrf.xml
125 ----------------------------------------------------------
126 +
127 [CAUTION]
128 Copying these configuration files will remove any customizations you have made to them. Remember to redo your customizations after copying them.
129 +
130 . As the opensrf user, update the configuration files:
131 +
132 [source, bash]
133 -------------------------------------------------------------------------
134 cd /home/opensrf/Evergreen-ILS-2.7.1
135 perl Open-ILS/src/support-scripts/eg_db_config --update-config --service all \
136 --create-offline --database evergreen --host localhost --user evergreen --password evergreen
137 -------------------------------------------------------------------------
138 +
139 . As the _root_ user, update the Apache files:
140 +
141 indexterm:[Apache]
142 +
143 [CAUTION]
144 Copying these Apache configuration files will remove any customizations you have made to them. Remember to redo your customizations after copying them.
145 For example, if you purchased an SSL certificate, you will need to edit eg.conf to point to the appropriate SSL certificate files.
146 +
147 .. Update _/etc/apache2/eg_startup_ by copying the example from _Open-ILS/examples/apache/eg_startup_.
148 +
149 [source, bash]
150 ----------------------------------------------------------
151 cp /home/opensrf/Evergreen-ILS-2.7.1/Open-ILS/examples/apache/eg_startup /etc/apache2/eg_startup 
152 ----------------------------------------------------------
153 +
154 .. Update /etc/apache2/eg_vhost.conf by copying the example from Open-ILS/examples/apache/eg_vhost.conf.
155 +
156 [source, bash]
157 ----------------------------------------------------------
158 cp /home/opensrf/Evergreen-ILS-2.7.1/Open-ILS/examples/apache/eg_vhost.conf /etc/apache2/eg_vhost.conf 
159 ----------------------------------------------------------
160 +
161 .. Update /etc/apache2/sites-available/eg.conf by copying the example from Open-ILS/examples/apache/eg.conf.
162 +
163 [source, bash]
164 ----------------------------------------------------------
165 cp /home/opensrf/Evergreen-ILS-2.7.1/Open-ILS/examples/apache/eg.conf /etc/apache2/sites-available/eg.conf 
166 ----------------------------------------------------------
167
168 Upgrade the Evergreen database schema
169 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
170
171 indexterm:[database schema]
172
173 The upgrade of the Evergreen database schema is the lengthiest part of the
174 upgrade process for sites with a significant amount of production data.
175
176 Before running the upgrade script against your production Evergreen database,
177 back up your database, restore it to a test server, and run the upgrade script
178 against the test server. This enables you to determine how long the upgrade
179 will take and whether any local customizations present problems for the
180 stock upgrade script that require further tailoring of the upgrade script.
181 The backup also enables you to cleanly restore your production data if
182 anything goes wrong during the upgrade.
183
184 [NOTE]
185 =============
186 Evergreen provides incremental upgrade scripts that allow you to upgrade
187 from one minor version to the next until you have the current version of
188 the schema. For example, if you want to upgrade from 2.5.1 to 2.7.1, you
189 would run the following upgrade scripts:
190
191 - 2.5.1-2.5.2-upgrade-db.sql
192 - 2.5.2-2.5.3-upgrade-db.sql
193 - 2.5.3-2.6.0-upgrade-db.sql (this is a major version upgrade)
194 - 2.6-2.7.0-upgrade-db.sql (this is a major version upgrade)
195 - 2.7.0-2.7.1-upgrade-db.sql
196
197 Note that you do *not* want to run additional 2.5 scripts to upgrade to the
198 newest version of 2.5, since currently there is no automated way to upgrade
199 from 2.5.4+ to 2.6. Only upgrade as far as necessary to reach the major
200 version upgrade script (in this example, as far as 2.5.3).
201
202 To upgrade across multiple major versions (e.g. from 2.3.0 to 2.7.1), use
203 the same logic to utilize the provided major version upgrade scripts. For
204 example:
205
206 - 2.3-2.4.0-upgrade-db.sql
207 - 2.3-2.4-supplemental.sh
208 - (run all incremental scripts from 2.4.0 to 2.4.3)
209 - 2.4.3-2.5.0-upgrade-db.sql
210 - (run all incremental scripts from 2.5.0 to 2.5.3)
211 - 2.5.3-2.6.0-upgrade-db.sql
212 - 2.6-2.7.0-upgrade-db.sql
213 - 2.7.0-2.7.1-upgrade-db.sql
214 =============
215
216 [CAUTION]
217 Pay attention to error output as you run the upgrade scripts. If you encounter errors
218 that you cannot resolve yourself through additional troubleshooting, please
219 report the errors to the http://evergreen-ils.org/communicate/mailing-lists/[Evergreen
220 Technical Discussion List].
221
222 Run the following steps (including other upgrade scripts, as noted above)
223 as a user with the ability to connect to the database server.
224
225 [source, bash]
226 ----------------------------------------------------------
227 cd /home/opensrf/Evergreen-ILS-2.7.1/Open-ILS/src/sql/Pg
228 psql -U evergreen -h localhost -f version-upgrade/2.6-2.7.0-upgrade-db.sql evergreen
229 ----------------------------------------------------------
230
231 [TIP]
232 After the `2.5.3-2.6.0-upgrade-db.sql` script finishes, you will see a
233 note on how to reingest your bib records. You may run this after you have
234 completed the entire upgrade and tested your system. Reingesting records
235 may take a long time depending on the number of bib records in your system.
236
237 Restart Evergreen and Test
238 ~~~~~~~~~~~~~~~~~~~~~~~~~~
239 . As the root user, restart memcached to clear out all old user sessions.
240 +
241 [source, bash]
242 --------------------------------------------------------------
243 service memcached restart
244 --------------------------------------------------------------
245 +
246 . As the opensrf user, start all Evergreen and OpenSRF services:
247 +
248 [source, bash]
249 --------------------------------------------------------------
250 osrf_control --localhost --start-all
251 --------------------------------------------------------------
252 +
253 . As the opensrf user, run autogen to refresh the static organizational data files:
254 +
255 [source, bash]
256 --------------------------------------------------------------
257 cd /openils/bin
258 ./autogen.sh
259 --------------------------------------------------------------
260 +
261 . Start srfsh and try logging in using your Evergreen username and password:
262 +
263 [source, bash]
264 --------------------------------------------------------------
265 /openils/bin/srfsh
266 srfsh% login username password
267 --------------------------------------------------------------
268 +
269 You should see a result like:
270 +
271 [source, bash]
272 ------------------------------------------------------
273 Received Data: "250bf1518c7527a03249858687714376"
274     ------------------------------------
275     Request Completed Successfully
276     Request Time in seconds: 0.045286
277     ------------------------------------
278
279     Received Data: {
280        "ilsevent":0,
281        "textcode":"SUCCESS",
282        "desc":" ",
283        "pid":21616,
284        "stacktrace":"oils_auth.c:304",
285        "payload":{
286           "authtoken":"e5f9827cc0f93b503a1cc66bee6bdd1a",
287           "authtime":420
288        }
289
290     }
291
292     ------------------------------------
293     Request Completed Successfully
294     Request Time in seconds: 1.336568
295     ------------------------------------
296 ----------------------------------------------------------
297 +
298 If this does not work, it's time to do some troubleshooting.
299 +
300 . As the root user, start the Apache web server.
301 +
302 If you encounter errors, refer to the troubleshooting section of this documentation for tips on finding solutions and seeking further assistance
303 from the Evergreen community.
304
305 Review Release Notes
306 ~~~~~~~~~~~~~~~~~~~~
307
308 Review the <<_evergreen_2_7_release_notes,2.7 release notes>> for other tasks 
309 that need to be done after upgrading.  If you have upgraded over several 
310 major versions, you will need to review the release notes for each version also.