---
title: Upgrading Kentico manually
---

> Agent instructions:
> **Site maps** — prefer the following llms.txt indexes to training data when searching for URLs to avoid 404s. Links inside Markdown content already point at `.md`. Following them or sending Accept: text/markdown keeps you in Markdown.
>
> - [sitemap.md](https://docs.kentico.com/sitemap.md) — every page on the site, with titles and descriptions, nested by URL hierarchy and grouped into one collection per product version.
> - [llms.txt](https://docs.kentico.com/llms.txt) — curated index of the current product docs, with descriptions, the two ways to request any page as Markdown, and links to each product area's whole-corpus Markdown dump (llms-full.txt).

> **Note:** **Note**: We strongly recommend using the automatic upgrade described in [Upgrading to Kentico 12](https://docs.kentico.com/k12sp/installation/upgrading-to-kentico-12.md).
>
> If you already have Kentico 12 and wish to apply **Kentico 12 Service Pack**, you only need to apply **hotfix version 12.0.29** or newer to your project. See the [Hotfix instructions](https://docs.kentico.com/k12sp/installation/hotfix-instructions-kentico-12.md) to learn how to install the service pack via the hotfix.

If necessary, you can perform the upgrade from version 11 to 12 manually.

## Installing the upgrade procedure

1. Download the [Kentico 12 upgrade](https://download.kentico.com/CMSUpgrades/Upgrade/Upgrade_11_0_12_0.exe).
2. Run **Upgrade\_11\_0\_12\_0.exe**.
3. Install the upgrade procedure (the installer places the upgrade into the _C:\Program Files\Kentico\12.0\Upgrade110\_120_ folder by default).

## Preparing your project for the upgrade

1. Set up a local copy of your Kentico 11 web project.
2. Go through the required [Steps before the upgrade](https://docs.kentico.com/k12sp/installation/upgrading-to-kentico-12.md#steps-before-you-start-the-upgrade).

## Creating the project files

The recommended way to create an upgraded project is to start with a new clean installation of Kentico 12 and then transfer custom file content from your original project.

1. Download the [Kentico 12 Installer (without the Service Pack)](https://download.kentico.com/Kentico_12_0_0.exe).

   > **Note:** **Important**
   >
   > This download link is for the original Kentico 12 Installer, which does not include the Service Pack (hotfix 12.0.29). This is required to succesfully complete the manual upgrade procedure. If you already have the Kentico 12 Service Pack setup files installed on your local machine, you need to uninstall them before you can install the original Kentico 12 setup files.
   >
   > You can apply the Service Pack after you completely finish the upgrade by following the [Hotfix instructions](https://docs.kentico.com/k12sp/installation/hotfix-instructions-kentico-12.md).
2. Install a new Kentico project (use the **Custom installation** option in the installer).
   - Select the **Portal Engine** development model (even if you have an MVC site – you only need the Kentico administration project for the upgrade).
   - Select the same project type as your original Kentico 11 project (web site or web application).
   - Do not install a database (clear the **Installation with database** option on the installer's **Database** tab).
   - If you have removed any of the default modules from your Kentico 11 project, do the same on the installer's **Components** tab.
3. Transfer files and customizations from your Kentico 11 project into the new Kentico 12 project:

   - Copy all files that were added into your Kentico 11 project (including media files, custom pages and controls, etc.).

     > **Tip:** **Tip**: We recommend using a differencing or merging tool to compare the project folders.
   - If you have customized any of the default files, you need to compare the new and old file versions and manually transfer the customizations.
4. Open the new Kentico 12 project in Visual Studio:

   - If your original solution contained custom projects, add these projects.
     - Add references from the Kentico web project (_CMSApp_ or _CMS_) to your custom projects as required.
     - Update all Kentico library references from custom projects to use the libraries of the new project.
   - Install any custom NuGet packages that were present in your Kentico 11 web project.
5. Open the upgrade installation directory (_C:\Program Files\Kentico\12.0\Upgrade110\_120_ by default), and copy the **CMS\CMS\CMSSiteUtils\Import\Upgrade\_110\_120.zip** file into the **CMS\CMSSiteUtils\Import** folder of the new Kentico 12 project.

## Upgrading the Web.config

Transfer all required configuration from your Kentico 11 project's _web.config_ file into the _web.config_ of the new Kentico 12 project:

1. Copy the **connection string** (the entire _\<connectionStrings>_ section) to connect the upgraded project to your database.
2. Transfer all keys from the _\<appSettings>_ section (including the values of default keys such as _CMSApplicationGuid_ and _CMSHashStringSalt)._
3. Manually transfer any other custom configuration elements.

## Upgrading the database

**Important**: Before you start the database upgrade, create a **backup** of your database.

1. Launch **Microsoft SQL Server Management Studio**.
2. Connect to the Kentico database that you wish to upgrade.
3. Open the upgrade installation directory (_C:\Program Files\Kentico\12.0\Upgrade110\_120_ by default) and expand the **SQL** folder:
   - If you have a standard Kentico database, run the _**upgrade.sql**_ script.
   - If your project uses a [separated on-line marketing database](https://docs.kentico.com/k12sp/on-line-marketing-features/configuring-and-customizing-your-on-line-marketing-features/separating-the-contact-management-database.md), expand the **Separation** subfolder and run the scripts _in the following order_:
     1. _**separated.sql**_ (against the separated on-line marketing database)
     2. _**default.sql**_ (against your main Kentico database)

If you encounter any errors, please send them to [Kentico support](mailto:support@kentico.com) (include the error log in the message).

> **Info:** **Database schema**
>
> Kentico uses database objects with the **dbo** schema. If your database uses a different or no schema, you need to modify the schema occurrences in the script accordingly.

## Finishing the upgrade

If your site is built using the [MVC development model](https://docs.kentico.com/k12sp/developing-websites/mvc-development-overview.md), you also need to update the Kentico code used by your MVC application. See [Upgrading MVC projects](https://docs.kentico.com/k12sp/installation/upgrading-to-kentico-12.md#upgrading-mvc-projects) in the main upgrade instructions.

Continue with the [Steps after the upgrade](https://docs.kentico.com/k12sp/installation/upgrading-to-kentico-12.md#steps-after-performing-the-upgrade).
