# Migration Guide

Migrations are only needed when upgrading to a **major version**. See [Versions and Upgrade](https://concordialang.gitbook.io/concordialang/upgrade/versioning) for more information.

To upgrade to a major version:

1. Uninstall the current version, *e.g.*: `npm uninstall -D concordialang`
2. Install the new version, *e.g.*: `npm install -D concordialang`
3. Now proceed as described below (depending on your current version).

**Note**: For a global installation, replace `-D` with `-g`.

## From `1.x` to `2.x`

**1. Update your plug-in**

Concordia 2 has a new plugin API, not compatible with plug-ins for Concordia 1. So uninstall your current plug-in and install a new one. **Example**:

```
npx concordia --plugin-uninstall codeceptjs-webdriverio
npx concordia --plugin-install codeceptjs-webdriverio
```

**Alternatively**, you can install one of the [new plug-ins](https://concordialang.gitbook.io/concordialang/introduction/plugins) then change your configuration file to use it. Example:

```
npx concordia --plugin-uninstall codeceptjs-webdriverio
npx concordia --plugin-install codeceptjs-playwright
npx concordia --plugin codeceptjs-playwright --save-config
```

**2. Install database drivers**

Whether your Concordia specification access a database, you have to install the corresponding database driver. Concordia 2 does not install them by default anymore, as Concordia 1 did, aiming to reduce the amount of downloaded dependencies.

Concordia 2 has a new CLI option `--db-install` to help with that. **Example**:

```
npx concordia --db-install mysql
```

See [Database Drivers](https://concordialang.gitbook.io/concordialang/upgrade/broken-reference) to install the proper driver(s) for your application.

## From `0.x` to `1.x`

**1. Update your configuration file, if needed**

Whether you project has a configuration file `.concordiarc`, open it with a text editor. If the file has a property `"plugin"` with the value `"codeceptjs"`, you must change it to `"codeceptjs-webdriverio"`.

**2. Install the new plug-in**

You can install any of the [available plug-ins](https://concordialang.gitbook.io/concordialang/introduction/plugins), currently `codeceptjs-webdriverio` or `codeceptjs-appium`. Example:

```bash
 concordia --plugin-install codeceptjs-webdriverio
```

## See also

* [Information about the breaking changes](https://concordialang.gitbook.io/concordialang/upgrade/breaking-changes)
* [Concordia's version numbering](https://concordialang.gitbook.io/concordialang/upgrade/versioning)
