<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Upgrading to New Releases</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="The Bugzilla Guide - 3.6.4 Release" HREF="index.html"><LINK REL="UP" TITLE="Installing Bugzilla" HREF="installing-bugzilla.html"><LINK REL="PREVIOUS" TITLE="UNIX (non-root) Installation Notes" HREF="nonroot.html"><LINK REL="NEXT" TITLE="Administering Bugzilla" HREF="administration.html"></HEAD ><BODY CLASS="section" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >The Bugzilla Guide - 3.6.4 Release</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="nonroot.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" >Chapter 2. Installing Bugzilla</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="administration.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="section" ><H1 CLASS="section" ><A NAME="upgrade" >2.7. Upgrading to New Releases</A ></H1 ><P >Upgrading to new Bugzilla releases is very simple. There is a script included with Bugzilla that will automatically do all of the database migration for you.</P ><P >The following sections explain how to upgrade from one version of Bugzilla to another. Whether you are upgrading from one bug-fix version to another (such as 3.0.1 to 3.0.2) or from one major version to another (such as from 3.0 to 3.2), the instructions are always the same.</P ><DIV CLASS="note" ><P ></P ><TABLE CLASS="note" WIDTH="100%" BORDER="0" ><TR ><TD WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG SRC="../images/note.gif" HSPACE="5" ALT="Note"></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > Any examples in the following sections are written as though the user were updating to version 2.22.1, but the procedures are the same no matter what version you're updating to. Also, in the examples, the user's Bugzilla installation is found at <TT CLASS="filename" >/var/www/html/bugzilla</TT >. If that is not the same as the location of your Bugzilla installation, simply substitute the proper paths where appropriate. </P ></TD ></TR ></TABLE ></DIV ><DIV CLASS="section" ><H2 CLASS="section" ><A NAME="upgrade-before" >2.7.1. Before You Upgrade</A ></H2 ><P >Before you start your upgrade, there are a few important steps to take:</P ><P ></P ><OL TYPE="1" ><LI ><P > Read the <A HREF="http://www.bugzilla.org/releases/" TARGET="_top" >Release Notes</A > of the version you're upgrading to, particularly the "Notes for Upgraders" section. </P ></LI ><LI ><P > View the Sanity Check (<A HREF="sanitycheck.html" >Section 3.16</A >) page on your installation before upgrading. Attempt to fix all warnings that the page produces before you go any further, or you may experience problems during your upgrade. </P ></LI ><LI ><P > Shut down your Bugzilla installation by putting some HTML or text in the shutdownhtml parameter (see <A HREF="parameters.html" >Section 3.1</A >). </P ></LI ><LI ><P > Make a backup of the Bugzilla database. <EM >THIS IS VERY IMPORTANT</EM >. If anything goes wrong during the upgrade, your installation can be corrupted beyond recovery. Having a backup keeps you safe. </P ><DIV CLASS="warning" ><P ></P ><TABLE CLASS="warning" WIDTH="100%" BORDER="0" ><TR ><TD WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG SRC="../images/warning.gif" HSPACE="5" ALT="Warning"></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > Upgrading is a one-way process. You cannot "downgrade" an upgraded Bugzilla. If you wish to revert to the old Bugzilla version for any reason, you will have to restore your database from this backup. </P ></TD ></TR ></TABLE ></DIV ><P >Here are some sample commands you could use to backup your database, depending on what database system you're using. You may have to modify these commands for your particular setup.</P ><P ></P ><DIV CLASS="variablelist" ><DL ><DT >MySQL:</DT ><DD ><P > <B CLASS="command" >mysqldump --opt -u bugs -p bugs > bugs.sql</B > </P ></DD ><DT >PostgreSQL:</DT ><DD ><P > <B CLASS="command" >pg_dump --no-privileges --no-owner -h localhost -U bugs > bugs.sql</B > </P ></DD ></DL ></DIV ></LI ></OL ></DIV ><DIV CLASS="section" ><H2 CLASS="section" ><A NAME="upgrade-files" >2.7.2. Getting The New Bugzilla</A ></H2 ><P >There are three ways to get the new version of Bugzilla. We'll list them here briefly and then explain them more later.</P ><P ></P ><DIV CLASS="variablelist" ><DL ><DT >CVS (<A HREF="upgrade.html#upgrade-cvs" >Section 2.7.2.2</A >)</DT ><DD ><P > If have <B CLASS="command" >cvs</B > installed on your machine and you have Internet access, this is the easiest way to upgrade, particularly if you have made modifications to the code or templates of Bugzilla. </P ></DD ><DT >Download the tarball (<A HREF="upgrade.html#upgrade-tarball" >Section 2.7.2.3</A >)</DT ><DD ><P > This is a very simple way to upgrade, and good if you haven't made many (or any) modifications to the code or templates of your Bugzilla. </P ></DD ><DT >Patches (<A HREF="upgrade.html#upgrade-patches" >Section 2.7.2.4</A >)</DT ><DD ><P > If you have made modifications to your Bugzilla, and you don't have Internet access or you don't want to use cvs, then this is the best way to upgrade. </P ><P > You can only do minor upgrades (such as 3.0 to 3.0.1 or 3.0.1 to 3.0.2) with patches. </P ></DD ></DL ></DIV ><DIV CLASS="section" ><H3 CLASS="section" ><A NAME="upgrade-modified" >2.7.2.1. If you have modified your Bugzilla</A ></H3 ><P > If you have modified the code or templates of your Bugzilla, then upgrading requires a bit more thought and effort. A discussion of the various methods of updating compared with degree and methods of local customization can be found in <A HREF="cust-templates.html#template-method" >Section 6.3.2</A >. </P ><P > The larger the jump you are trying to make, the more difficult it is going to be to upgrade if you have made local customizations. Upgrading from 3.0 to 3.0.1 should be fairly painless even if you are heavily customized, but going from 2.18 to 3.0 is going to mean a fair bit of work re-writing your local changes to use the new files, logic, templates, etc. If you have done no local changes at all, however, then upgrading should be approximately the same amount of work regardless of how long it has been since your version was released. </P ></DIV ><DIV CLASS="section" ><H3 CLASS="section" ><A NAME="upgrade-cvs" >2.7.2.2. Upgrading using CVS</A ></H3 ><P > This requires that you have cvs installed (most Unix machines do), and requires that you are able to access cvs-mirror.mozilla.org on port 2401, which may not be an option if you are behind a highly restrictive firewall or don't have Internet access. </P ><P > The following shows the sequence of commands needed to update a Bugzilla installation via CVS, and a typical series of results. </P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="programlisting" > bash$ <B CLASS="command" >cd /var/www/html/bugzilla</B > bash$ <B CLASS="command" >cvs login</B > Logging in to :pserver:anonymous@cvs-mirror.mozilla.org:2401/cvsroot CVS password: <EM >('anonymous', or just leave it blank)</EM > bash$ <B CLASS="command" >cvs -q update -r BUGZILLA-2_22_1 -dP</B > P checksetup.pl P collectstats.pl P docs/rel_notes.txt P template/en/default/list/quips.html.tmpl <EM >(etc.)</EM > </PRE ></FONT ></TD ></TR ></TABLE ><DIV CLASS="caution" ><P ></P ><TABLE CLASS="caution" WIDTH="100%" BORDER="0" ><TR ><TD WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG SRC="../images/caution.gif" HSPACE="5" ALT="Caution"></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > If a line in the output from <B CLASS="command" >cvs update</B > begins with a <SAMP CLASS="computeroutput" >C</SAMP >, then that represents a file with local changes that CVS was unable to properly merge. You need to resolve these conflicts manually before Bugzilla (or at least the portion using that file) will be usable. </P ></TD ></TR ></TABLE ></DIV ></DIV ><DIV CLASS="section" ><H3 CLASS="section" ><A NAME="upgrade-tarball" >2.7.2.3. Upgrading using the tarball</A ></H3 ><P > If you are unable (or unwilling) to use CVS, another option that's always available is to obtain the latest tarball from the <A HREF="http://www.bugzilla.org/download/" TARGET="_top" >Download Page</A > and create a new Bugzilla installation from that. </P ><P > This sequence of commands shows how to get the tarball from the command-line; it is also possible to download it from the site directly in a web browser. If you go that route, save the file to the <TT CLASS="filename" >/var/www/html</TT > directory (or its equivalent, if you use something else) and omit the first three lines of the example. </P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="programlisting" > bash$ <B CLASS="command" >cd /var/www/html</B > bash$ <B CLASS="command" >wget http://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-2.22.1.tar.gz</B > <EM >(Output omitted)</EM > bash$ <B CLASS="command" >tar xzvf bugzilla-2.22.1.tar.gz</B > bugzilla-2.22.1/ bugzilla-2.22.1/.cvsignore <EM >(Output truncated)</EM > bash$ <B CLASS="command" >cd bugzilla-2.22.1</B > bash$ <B CLASS="command" >cp ../bugzilla/localconfig* .</B > bash$ <B CLASS="command" >cp -r ../bugzilla/data .</B > bash$ <B CLASS="command" >cd ..</B > bash$ <B CLASS="command" >mv bugzilla bugzilla.old</B > bash$ <B CLASS="command" >mv bugzilla-2.22.1 bugzilla</B > </PRE ></FONT ></TD ></TR ></TABLE ><DIV CLASS="warning" ><P ></P ><TABLE CLASS="warning" WIDTH="100%" BORDER="0" ><TR ><TD WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG SRC="../images/warning.gif" HSPACE="5" ALT="Warning"></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > The <B CLASS="command" >cp</B > commands both end with periods which is a very important detail--it means that the destination directory is the current working directory. </P ></TD ></TR ></TABLE ></DIV ><P > This upgrade method will give you a clean install of Bugzilla. That's fine if you don't have any local customizations that you want to maintain. If you do have customizations, then you will need to reapply them by hand to the appropriate files. </P ></DIV ><DIV CLASS="section" ><H3 CLASS="section" ><A NAME="upgrade-patches" >2.7.2.4. Upgrading using patches</A ></H3 ><P > A patch is a collection of all the bug fixes that have been made since the last bug-fix release. </P ><P > If you are doing a bug-fix upgrade—that is, one where only the last number of the revision changes, such as from 2.22 to 2.22.1—then you have the option of obtaining and applying a patch file from the <A HREF="http://www.bugzilla.org/download/" TARGET="_top" >Download Page</A >. </P ><P > As above, this example starts with obtaining the file via the command line. If you have already downloaded it, you can omit the first two commands. </P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="programlisting" > bash$ <B CLASS="command" >cd /var/www/html/bugzilla</B > bash$ <B CLASS="command" >wget http://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-2.22-to-2.22.1.diff.gz</B > <EM >(Output omitted)</EM > bash$ <B CLASS="command" >gunzip bugzilla-2.22-to-2.22.1.diff.gz</B > bash$ <B CLASS="command" >patch -p1 < bugzilla-2.22-to-2.22.1.diff</B > patching file checksetup.pl patching file collectstats.pl <EM >(etc.)</EM > </PRE ></FONT ></TD ></TR ></TABLE ><DIV CLASS="warning" ><P ></P ><TABLE CLASS="warning" WIDTH="100%" BORDER="0" ><TR ><TD WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG SRC="../images/warning.gif" HSPACE="5" ALT="Warning"></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > Be aware that upgrading from a patch file does not change the entries in your <TT CLASS="filename" >CVS</TT > directory. This could make it more difficult to upgrade using CVS (<A HREF="upgrade.html#upgrade-cvs" >Section 2.7.2.2</A >) in the future. </P ></TD ></TR ></TABLE ></DIV ></DIV ></DIV ><DIV CLASS="section" ><H2 CLASS="section" ><A NAME="upgrade-completion" >2.7.3. Completing Your Upgrade</A ></H2 ><P > Now that you have the new Bugzilla code, there are a few final steps to complete your upgrade. </P ><P ></P ><OL TYPE="1" ><LI ><P > If your new Bugzilla installation is in a different directory or on a different machine than your old Bugzilla installation, make sure that you have copied the <TT CLASS="filename" >data</TT > directory and the <TT CLASS="filename" >localconfig</TT > file from your old Bugzilla installation. (If you followed the tarball instructions above, this has already happened.) </P ></LI ><LI ><P > If this is a major update, check that the configuration (<A HREF="configuration.html" >Section 2.2</A >) for your new Bugzilla is up-to-date. Sometimes the configuration requirements change between major versions. </P ></LI ><LI ><P > If you didn't do it as part of the above configuration step, now you need to run <B CLASS="command" >checksetup.pl</B >, which will do everything required to convert your existing database and settings for the new version: </P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="programlisting" > bash$ <B CLASS="command" >cd /var/www/html/bugzilla</B > bash$ <B CLASS="command" >./checksetup.pl</B > </PRE ></FONT ></TD ></TR ></TABLE ><DIV CLASS="warning" ><P ></P ><TABLE CLASS="warning" WIDTH="100%" BORDER="0" ><TR ><TD WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG SRC="../images/warning.gif" HSPACE="5" ALT="Warning"></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > The period at the beginning of the command <B CLASS="command" >./checksetup.pl</B > is important and can not be omitted. </P ></TD ></TR ></TABLE ></DIV ><DIV CLASS="caution" ><P ></P ><TABLE CLASS="caution" WIDTH="100%" BORDER="0" ><TR ><TD WIDTH="25" ALIGN="CENTER" VALIGN="TOP" ><IMG SRC="../images/caution.gif" HSPACE="5" ALT="Caution"></TD ><TD ALIGN="LEFT" VALIGN="TOP" ><P > If this is a major upgrade (say, 2.22 to 3.0 or similar), running <B CLASS="command" >checksetup.pl</B > on a large installation (75,000 or more bugs) can take a long time, possibly several hours. </P ></TD ></TR ></TABLE ></DIV ></LI ><LI ><P > Clear any HTML or text that you put into the shutdownhtml parameter, to re-activate Bugzilla. </P ></LI ><LI ><P > View the Sanity Check (<A HREF="sanitycheck.html" >Section 3.16</A >) page in your upgraded Bugzilla. </P ><P > It is recommended that, if possible, you fix any problems you see, immediately. Failure to do this may mean that Bugzilla will not work correctly. Be aware that if the sanity check page contains more errors after an upgrade, it doesn't necessarily mean there are more errors in your database than there were before, as additional tests are added to the sanity check over time, and it is possible that those errors weren't being checked for in the old version. </P ></LI ></OL ></DIV ><DIV CLASS="section" ><H2 CLASS="section" ><A NAME="upgrade-notifications" >2.7.4. Automatic Notifications of New Releases</A ></H2 ><P > Bugzilla 3.0 introduced the ability to automatically notify administrators when new releases are available, based on the <TT CLASS="literal" >upgrade_notification</TT > parameter, see <A HREF="parameters.html" >Section 3.1</A >. Administrators will see these notifications when they access the <TT CLASS="filename" >index.cgi</TT > page, i.e. generally when logging in. Bugzilla will check once per day for new releases, unless the parameter is set to <SPAN CLASS="QUOTE" >"disabled"</SPAN >. If you are behind a proxy, you may have to set the <TT CLASS="literal" >proxy_url</TT > parameter accordingly. If the proxy requires authentication, use the <TT CLASS="literal" >http://user:pass@proxy_url/</TT > syntax. </P ></DIV ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="nonroot.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="administration.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >UNIX (non-root) Installation Notes</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="installing-bugzilla.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Administering Bugzilla</TD ></TR ></TABLE ></DIV ></BODY ></HTML >