<?xml version="1.0" encoding="UTF-8"?>
<!--
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="website.xsd">

	<properties>
		<title>Upgrade</title>
		<author email="sebawagner@apache.org">
			OpenMeetings Team
		</author>
	</properties>

	<body>
		<section name="Upgrading OpenMeetings via the Web-Interface">
			<ol>
				<li>
					<p>There is a System Backup and Import tool. Login as Administrator and Administration &gt; Backup</p>
					<a class="fancybox-buttons" href="images/backup.png"><img src="images/backup.png" alt="" width="600" /></a>
					<p>
						The Text in the Administration &gt; Backup section actually just says
						it all. The backup contains users, rooms, organizations and
						appointments (Invitations and Reminders are NOT included in the
						Backup and Reminders will not be send again!). The Backup contains
						also all uploaded Files and Documents and will re-import them again.
		
						Max Upload Size is 1000 MB.
					</p>
				</li>
				<li>Stop Openmeetings</li>
				<li>(*) Backup folder with existing installation</li>
				<li>(*) Perform DB backup using tools available for your database</li>
				<li>Delete/move folder with existing installation of OM</li>
				<li>Drop existing OM database</li>
				<li>Create empty Database with same name and UTF-8 support</li>
				<li>Unzip new version of OM into the same folder</li>
				<li>(*) Modify DB settings</li>
				<li>Start Openmeetings</li>
				<li>go to http://localhost:5080/openmeetings</li>
				<li>Install OM using Web installer</li>
				<li>Login as Administrator and Administration &gt; Backup</li>
				<li>Perform system import</li>
			</ol>
			<p>(*) Optional step</p>
		</section>

		<section name="Upgrading OpenMeetings from command line">
			<p>
				<i>You need OpenMeetings 2.x or later to have the command line interface (CLI) 
					feature available
				</i>
			</p>
			<p>
				Alternatively to the Web-Installer you can also export and import via the command line. <br/>
				<b>You should shutdown the Red5-Service while doing CLI export or import operations</b><br />
				Cd to your red5-home directory, type "./admin.sh" and hit enter. You will get options available.<br />
				<br />
				A typical export would be:<br />
				<tt>./admin.sh -b -file backup_today.zip</tt><br />
				<br />
				A typical import would be:<br />
				<tt>./admin.sh -r -file backup_yesterday.zip</tt><br />
				<br />
				You can also combine the installation with a backup, that way you will create exactly the user table 
				that existed in the backup.<br />
				A typical install from backup would be:<br />
				<tt>./admin.sh -i -file backup_yesterday.zip</tt><br/>
				please see <a href="CommandLineAdmin.html" target="_BLANK" rel="nofollow">Command Line Admin</a> for more options
			</p>
			<p><b>Detailed steps</b></p>
			<ol>
				<li>Stop Openmeetings</li>
				<li>(*) Backup folder with existing installation</li>
				<li>(*) Perform DB backup using tools available for your database</li>
				<li><tt>./admin.sh -v -b -file ../backup_today.zip</tt></li>
				<li>Delete/move folder with existing installation of OM</li>
				<li>Unzip new version of OM into the same folder</li>
				<li><tt>./admin.sh -v -i -file ../backup_today.zip --drop --skip-default-room</tt> (Optionally you can specify
					additional parameters like DB host/user/pass/instance etc.)</li>
				<li>Start Openmeetings</li>
				<li>go to http://localhost:5080/openmeetings</li>
			</ol>
			<p>(*) Optional step</p>
		</section>

	</body>

</document>