:::info Quick summary
This page explains how to use Prisma's codemods to automatically update your codebase during major version upgrades. Learn about installation, usage commands, available code transformations, and options for safely refactoring your projects.
:::


<TopBlock>

The `@prisma/codemods` package helps you to upgrade your codebase as Prisma ORM evolves.

:::info

You can checkout the repository, here: https://github.com/prisma/codemods

:::

</TopBlock>

## Usage

```terminal
  $ npx @prisma/codemods <transform> <path> <...options>
```

- `<transform>` - See [Transforms](#transforms) for available choices
- `<path>` - The directory of your app. i.e ./my-awesome-project

## Options

- `(-f)orce` - Bypass Git safety checks and forcibly run codemods
- `(-s)chemaPath` - Specify a path to your ./prisma/schema.prisma
- `(-d)ry` - Dry run (no changes are made to files)
- `(-p)rint` - Print transformed files to your terminal
- `--instanceNames=myClient` - Useful when importing an already instantiated client (i.e import myClient from './myClient')

## Transforms

| `<transform>` | Description                                                 | Example                                         |
| ------------- | ----------------------------------------------------------- | ----------------------------------------------- |
| `namespace`   | Codemod for `@prisma/client` namespace change               | `npx @prisma/codemods namespace ./my-project`   |
| `findUnique`  | Converts `prisma.x.findOne` to `prisma.x.findUnique`        | `npx @prisma/codemods findUnique ./my-project`  |
| `to$`         | to\$: Converts deprecated `prisma.x` methods to `prisma.$x` | `npx @prisma/codemods to$ ./my-project`         |
| `update-2.12` | Includes `namespace`/`findUnique`/`to$`                     | `npx @prisma/codemods update-2.12 ./my-project` |

---

# Upgrading versions