<commit_before>DbUp uses a builder to configure your database deployments, you then build the upgrade engine and run your database migrations.

## Configuration
The entrypoint is `DeployChanges.To`. There are then extension methods for all of the [supported databases](./supported-databases.md).

Then you can configure:

* [Journaling](./more-info/journaling.md)
* [Script Providers](./more-info/script-providers.md)
* [Logging](./more-info/logging.md)
* [Variable Substitution](./more-info/variable-substitution.md)
* [Transaction Usage](./more-info/transactions.md)
* [Preprocessors](./more-info/preprocessors.md)

## Deploying
Once you have configured DbUp

``` csharp
var upgradeEngine = DeployChanges.To
    .SqlDatabase(connectionString)
    .WithScriptsEmbeddedInAssembly(Assembly.GetExecutingAssembly())
    .LogToConsole()
    .Build();
```

You can:

* Get scripts which will be executed (`GetScriptsToExecute()`)
* Get already executed scripts (`GetExecutedScripts()`)
* Check if an upgrade is required (`IsUpgradeRequired()`)
* Creates version record for any new migration scripts without executing them (`MarkAsExecuted`)
  * Useful for bringing development environments into sync with automated environments
* Try to connect to the database (`TryConnect()`)
* Perform the database upgrade (`PerformUpgrade()`)

## Hosting options
A console application is not the only way to use DbUp. For example...
* A website can detect if it needs a database upgrade when it starts. If an upgrade is required it can put itself into maintainance mode and require an administrator to login and click a button to perform the migration.
<commit_msg>Add line break to fix usage doc bulleted list<commit_after>DbUp uses a builder to configure your database deployments, you then build the upgrade engine and run your database migrations.

## Configuration
The entrypoint is `DeployChanges.To`. There are then extension methods for all of the [supported databases](./supported-databases.md).

Then you can configure:

* [Journaling](./more-info/journaling.md)
* [Script Providers](./more-info/script-providers.md)
* [Logging](./more-info/logging.md)
* [Variable Substitution](./more-info/variable-substitution.md)
* [Transaction Usage](./more-info/transactions.md)
* [Preprocessors](./more-info/preprocessors.md)

## Deploying
Once you have configured DbUp

``` csharp
var upgradeEngine = DeployChanges.To
    .SqlDatabase(connectionString)
    .WithScriptsEmbeddedInAssembly(Assembly.GetExecutingAssembly())
    .LogToConsole()
    .Build();
```

You can:

* Get scripts which will be executed (`GetScriptsToExecute()`)
* Get already executed scripts (`GetExecutedScripts()`)
* Check if an upgrade is required (`IsUpgradeRequired()`)
* Creates version record for any new migration scripts without executing them (`MarkAsExecuted`)
  * Useful for bringing development environments into sync with automated environments
* Try to connect to the database (`TryConnect()`)
* Perform the database upgrade (`PerformUpgrade()`)

## Hosting options
A console application is not the only way to use DbUp. For example...

* A website can detect if it needs a database upgrade when it starts. If an upgrade is required it can put itself into maintainance mode and require an administrator to login and click a button to perform the migration.

{'fraction_non_alphanumeric': 0.09618274721971747, 'fraction_numerical': 0.0, 'mean_word_length': 5.050909090909091, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4281655', 'n_tokens_mistral': 903, 'n_tokens_neox': 868, 'n_words': 352}