# gel migration apply

Once the migration scripts are in place the changes can be applied to the database by this command:

```cli-synopsis
gel migration apply [<options>]
```

The tool will find all the unapplied migrations in `dbschema/migrations/` directory and sequentially run them on the target instance.

> Warning: Gel Cloud CI users and scripters
> 
> When scripting a `migrate`/`migration apply` for a Gel Cloud instance, do not use `gel login` to authenticate. Instead, you should generate a secret key in the Gel Cloud UI or by running [gel cloud secretkey create](https://docs.geldata.com/reference/using/cli/gel_cloud/gel_cloud_secretkey/edgedb_cloud_secretkey_create.md#ref-cli-gel-cloud-secretkey-create) and set the `GEL_SECRET_KEY` environment variable to your secret key. Once this variable is set to your secret key, logging in is no longer required.

## Options

The `migration apply` command runs on the database it is connected to. For specifying the connection target see [connection options](https://docs.geldata.com/reference/using/cli/gel_connopts.md#ref-cli-gel-connopts).

`--quiet`:
Do not print any messages, only indicate success by exit status.



`--schema-dir=<schema-dir>`:
Directory where the schema files are located. Defaults to `./dbschema`.



`--to-revision=<to-revision>`:
Upgrade to a specified revision.

Unique prefix of the revision can be specified instead of full revision name.

If this revision is applied, the command is no-op. The command ensures that this revision present, but it's not an error if more revisions are applied on top.



`--dev-mode`:
Apply the current schema changes on top of the current migration history, without having created a new migration. This works the same way as [gel watch –migrate](https://docs.geldata.com/reference/using/cli/gel_watch.md#ref-cli-gel-watch) but without starting a long-running watch task.



