//
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements.  See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership.  The ASF licenses this file
// to you 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.
//
=== Upgrade from Apache Syncope 2.0

Upgrading an existing Apache Syncope 2.0 deployment involves at least the following steps:

. upgrade Core, Console and Enduser according to the latest
https://cwiki.apache.org/confluence/display/SYNCOPE/Fusion[release notes^] available

. full backup of existing DBMS used as <<persistence,internal storage>> for Apache Syncope 2.0 Core

. https://syncope.apache.org/downloads[download^] and run the upgrade tool, which will generate the full set of SQL
statements required to upgrade the internal storage to 2.1
 .. once uncompressed, you will find a `lib` directory and two scripts: `syncopeupgrade.sh` and `syncopeupgrade.bat`,
which will be used depending on the operating system
 .. copy the JDBC driver JAR file compatible with the internal storage into the `lib` directory
 .. run the tool as follows:
+
[source,bash]
$ ./syncopeupgrade.sh org.postgresql.Driver \
 jdbc:postgresql://localhost:5432/syncope syncope syncope postgres \
 upgrade.sql
+
assuming that:
 * `org.postgresql.Driver` is the JDBC driver class name
 * you have a PostgreSQL instance running on localhost, listening on its default port 5432 with a database
`syncope` fully accessible by user `syncope` with password `syncope`
 * SQL statements are generated onto the `upgrade.sql` file

. shutdown the Java EE container running Apache Syncope 2.0 Core

. execute the SQL statements as generated above against the internal storage: in case of errors, apply manual
corrections until everything runs clear; consider to restore from the backup taken above if needed, before executing
the updated SQL statements again

. after deploying Apache Syncope 2.1, start the Java EE container of Apache Syncope 2.1 Core and watch the log files
to check for any error 
