> For the complete documentation index, see [llms.txt](https://dev.ucommerce.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dev.ucommerce.net/readme/how-to/migrate-from-classic.md).

# Migrate from Classic

## Before Migrating

If you have any complex custom code in your Ucommerce Classic solution, we recommend contacting us [here](https://ucommerce.net/contact) before you start your migration.\
It's also important that your solution meets our prerequisites, which are listed [here](/readme/getting-started/prerequisites.md).

## Migrating

### Migrating the database

First, you must upgrade your database to the latest version of Ucommerce 9. If you're already on a version of Ucommerce 9, this should be easily accomplished by upgrading your Ucommerce package and starting your application.\
If you're using a regular SQL Server for your database, make sure that your database has a SQL Server compatibility level of at least 130.

### Installing and connecting Next-Gen

We recommend using our templates for easy installation of Ucommerce Next-Gen. Information on them can be found [here](/readme/getting-started/ucommerce-templates.md).\
Once you've created a new project from one of the templates, make sure you add the connection string for your database. When this is done, you're ready to start the project and it will migrate the database for you.\
After this, go to the Ucommerce backoffice at `/ucommerce` and verify that your data has been migrated.

### Migrating custom logic

To migrate custom logic, we recommend getting an overview of which parts of the solution are custom-built and then using our documentation to guide you on the changes needed.

The main differences between Ucommerce Classic and Next-Gen are how dependency injection works, application setup, database access, and pipeline registration.\
Some articles that might be of use to you are listed below:

* [Discover pipelines and their tasks](/readme/how-to/discover-pipelines-and-their-tasks.md)
* [Extending Pipelines](/readme/extensions/extending-pipelines.md)
* [Change Service Behaviour](/readme/extensions/change-service-behavior.md)
* [Entities from code](/readme/how-to/entities-from-code.md)
* [Custom UI Components](/readme/extensions/extend-the-backoffice/custom-ui-components.md)

*N.B.: All custom logic must be ported from the .Net framework to .Net 8.*


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://dev.ucommerce.net/readme/how-to/migrate-from-classic.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
