[[setup-upgrade]]
= Upgrade {es}

[partintro]
--
{es} can usually be upgraded using a <<rolling-upgrades,Rolling upgrade>>
process so upgrading does not interrupt service. Rolling upgrades are supported:

* Between minor versions
* From 5.6 to 6.7
* From 6.7 to {version}

{es} can read indices created in the previous major version. If you
have indices created in 5.x or before, you must reindex or delete them
before upgrading to {version}. {es} nodes will fail to start if
incompatible indices are present. Snapshots of 5.x or earlier indices cannot be
restored to a 7.x cluster even if they were created by a 6.x cluster. For
information about upgrading old indices, see <<reindex-upgrade, Reindex to upgrade>>.

When upgrading to a new version of {es}, you need to upgrade each
of the products in your Elastic Stack. For more information, see the
{stack-ref}/upgrading-elastic-stack.html[Elastic Stack Installation and Upgrade Guide].

To upgrade directly to {version} from 6.6 or earlier, you must shut down the
cluster, install {version}, and restart. For more information, see
<<restart-upgrade, Full cluster restart upgrade>>.

[float]
== Preparing to upgrade

Before upgrading {es}:

. Check the <<deprecation-logging, deprecation log>> to see if you are using
any deprecated features and update your code accordingly. By default,
deprecation warnings are logged when the log level is set to `WARN`.
. Review the <<breaking-changes,breaking changes>> and make any necessary changes
to your code and configuration for {version}.
. If you use custom plugins, make sure compatible versions are available.
. Test upgrades in a dev environment before upgrading your production cluster.
before upgrading.
. <<modules-snapshots,Back up your data!>> You must have a snapshot of your
data to roll back to an earlier version.

--

include::upgrade/rolling_upgrade.asciidoc[]

include::upgrade/cluster_restart.asciidoc[]

include::upgrade/reindex_upgrade.asciidoc[]
