# DatabaseConfiguration

Artifact: [androidx.room:room-runtime](https://developer.android.com/jetpack/androidx/releases/room) [View Source](https://cs.android.com/search?q=file:androidx/room/DatabaseConfiguration.+class:androidx.room.DatabaseConfiguration) Added in [2.0.0](https://developer.android.com/jetpack/androidx/releases/room#2.0.0)

*** ** * ** ***


```
public final class DatabaseConfiguration
```

<br />

*** ** * ** ***

Configuration class for a `https://developer.android.com/reference/androidx/room/RoomDatabase`.

## Summary

| ### Public fields |
|---|---|
| `final boolean` | `https://developer.android.com/reference/androidx/room/DatabaseConfiguration#allowDestructiveMigrationForAllTables()` |
| `final boolean` | `https://developer.android.com/reference/androidx/room/DatabaseConfiguration#allowDestructiveMigrationOnDowngrade()` |
| `final boolean` | `https://developer.android.com/reference/androidx/room/DatabaseConfiguration#allowMainThreadQueries()` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/List.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/room/migration/AutoMigrationSpec>` | `https://developer.android.com/reference/androidx/room/DatabaseConfiguration#autoMigrationSpecs()` |
| `final https://developer.android.com/reference/java/util/List.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/room/RoomDatabase.Callback>` | `https://developer.android.com/reference/androidx/room/DatabaseConfiguration#callbacks()` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/Context.html` | `https://developer.android.com/reference/androidx/room/DatabaseConfiguration#context()` |
| `final https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/room/DatabaseConfiguration#copyFromAssetPath()` |
| `final https://developer.android.com/reference/java/io/File.html` | `https://developer.android.com/reference/androidx/room/DatabaseConfiguration#copyFromFile()` |
| `final https://developer.android.com/reference/java/util/concurrent/Callable.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/io/InputStream.html>` | `https://developer.android.com/reference/androidx/room/DatabaseConfiguration#copyFromInputStream()` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/room/RoomDatabase.JournalMode` | `https://developer.android.com/reference/androidx/room/DatabaseConfiguration#journalMode()` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/room/RoomDatabase.MigrationContainer` | `https://developer.android.com/reference/androidx/room/DatabaseConfiguration#migrationContainer()` |
| `final boolean` | `https://developer.android.com/reference/androidx/room/DatabaseConfiguration#multiInstanceInvalidation()` If true, table invalidation in an instance of `https://developer.android.com/reference/androidx/room/RoomDatabase` is broadcast and synchronized with other instances of the same `https://developer.android.com/reference/androidx/room/RoomDatabase` file, including those in a separate process. |
| `final https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/room/DatabaseConfiguration#name()` |
| `final https://developer.android.com/reference/androidx/room/RoomDatabase.PrepackagedDatabaseCallback` | `https://developer.android.com/reference/androidx/room/DatabaseConfiguration#prepackagedDatabaseCallback()` |
| `final https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html` | `https://developer.android.com/reference/androidx/room/DatabaseConfiguration#queryCoroutineContext()` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/concurrent/Executor.html` | `https://developer.android.com/reference/androidx/room/DatabaseConfiguration#queryExecutor()` |
| `final boolean` | `https://developer.android.com/reference/androidx/room/DatabaseConfiguration#requireMigration()` |
| `final https://developer.android.com/reference/androidx/sqlite/SQLiteDriver` | `https://developer.android.com/reference/androidx/room/DatabaseConfiguration#sqliteDriver()` |
| `final https://developer.android.com/reference/androidx/sqlite/db/SupportSQLiteOpenHelper.Factory` | `https://developer.android.com/reference/androidx/room/DatabaseConfiguration#sqliteOpenHelperFactory()` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/concurrent/Executor.html` | `https://developer.android.com/reference/androidx/room/DatabaseConfiguration#transactionExecutor()` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/List.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Object.html>` | `https://developer.android.com/reference/androidx/room/DatabaseConfiguration#typeConverters()` |

| ### Public methods |
|---|---|
| `boolean` | `https://developer.android.com/reference/androidx/room/DatabaseConfiguration#isMigrationRequired(kotlin.Int,kotlin.Int)(int fromVersion, int toVersion)` Returns whether a migration is required between two versions. |
| `boolean` | `[isMigrationRequiredFrom](https://developer.android.com/reference/androidx/room/DatabaseConfiguration#isMigrationRequiredFrom(kotlin.Int))(int version)` **This method is deprecated.** Use \[isMigrationRequired(int, int)\] which takes \[allowDestructiveMigrationOnDowngrade\] into account. |

## Public fields

### allowDestructiveMigrationForAllTables

Added in [2.7.0](https://developer.android.com/jetpack/androidx/releases/room#2.7.0)

```
public final boolean allowDestructiveMigrationForAllTables
```

### allowDestructiveMigrationOnDowngrade

Added in [2.1.0](https://developer.android.com/jetpack/androidx/releases/room#2.1.0)

```
public final boolean allowDestructiveMigrationOnDowngrade
```

### allowMainThreadQueries

Added in [2.0.0](https://developer.android.com/jetpack/androidx/releases/room#2.0.0)

```
public final boolean allowMainThreadQueries
```

### autoMigrationSpecs

Added in [2.4.0](https://developer.android.com/jetpack/androidx/releases/room#2.4.0)

```
public final @NonNull List<@NonNull AutoMigrationSpec> autoMigrationSpecs
```

### callbacks

Added in [2.0.0](https://developer.android.com/jetpack/androidx/releases/room#2.0.0)

```
public final List<@NonNull RoomDatabase.Callback> callbacks
```

### context

Added in [2.0.0](https://developer.android.com/jetpack/androidx/releases/room#2.0.0)

```
public final @NonNull Context context
```

### copyFromAssetPath

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/room#2.2.0)

```
public final String copyFromAssetPath
```

### copyFromFile

Added in [2.2.0](https://developer.android.com/jetpack/androidx/releases/room#2.2.0)

```
public final File copyFromFile
```

### copyFromInputStream

Added in [2.3.0](https://developer.android.com/jetpack/androidx/releases/room#2.3.0)

```
public final Callable<@NonNull InputStream> copyFromInputStream
```

### journalMode

Added in [2.0.0](https://developer.android.com/jetpack/androidx/releases/room#2.0.0)

```
public final @NonNull RoomDatabase.JournalMode journalMode
```

### migrationContainer

Added in [2.0.0](https://developer.android.com/jetpack/androidx/releases/room#2.0.0)

```
public final @NonNull RoomDatabase.MigrationContainer migrationContainer
```

### multiInstanceInvalidation

Added in [2.1.0](https://developer.android.com/jetpack/androidx/releases/room#2.1.0)

```
public final boolean multiInstanceInvalidation
```

If true, table invalidation in an instance of `https://developer.android.com/reference/androidx/room/RoomDatabase` is broadcast and synchronized with other instances of the same `https://developer.android.com/reference/androidx/room/RoomDatabase` file, including those in a separate process.

### name

Added in [2.0.0](https://developer.android.com/jetpack/androidx/releases/room#2.0.0)

```
public final String name
```

### prepackagedDatabaseCallback

Added in [2.3.0](https://developer.android.com/jetpack/androidx/releases/room#2.3.0)

```
public final RoomDatabase.PrepackagedDatabaseCallback prepackagedDatabaseCallback
```

### queryCoroutineContext

Added in [2.7.0](https://developer.android.com/jetpack/androidx/releases/room#2.7.0)

```
public final CoroutineContext queryCoroutineContext
```

### queryExecutor

Added in [2.0.0](https://developer.android.com/jetpack/androidx/releases/room#2.0.0)

```
public final @NonNull Executor queryExecutor
```

### requireMigration

Added in [2.0.0](https://developer.android.com/jetpack/androidx/releases/room#2.0.0)

```
public final boolean requireMigration
```

### sqliteDriver

Added in [2.7.0](https://developer.android.com/jetpack/androidx/releases/room#2.7.0)

```
public final SQLiteDriver sqliteDriver
```

### sqliteOpenHelperFactory

Added in [2.0.0](https://developer.android.com/jetpack/androidx/releases/room#2.0.0)

```
public final SupportSQLiteOpenHelper.Factory sqliteOpenHelperFactory
```

### transactionExecutor

Added in [2.1.0](https://developer.android.com/jetpack/androidx/releases/room#2.1.0)

```
public final @NonNull Executor transactionExecutor
```

### typeConverters

Added in [2.3.0](https://developer.android.com/jetpack/androidx/releases/room#2.3.0)

```
public final @NonNull List<@NonNull Object> typeConverters
```

## Public methods

### isMigrationRequired

Added in [2.1.0](https://developer.android.com/jetpack/androidx/releases/room#2.1.0)

```
public boolean isMigrationRequired(int fromVersion, int toVersion)
```

Returns whether a migration is required between two versions.

| Parameters |
|---|---|
| `int fromVersion` | The old schema version. |
| `int toVersion` | The new schema version. |

| Returns |
|---|---|
| `boolean` | True if a valid migration is required, false otherwise. |

### isMigrationRequiredFrom

Added in [2.0.0](https://developer.android.com/jetpack/androidx/releases/room#2.0.0) Deprecated in [2.1.0](https://developer.android.com/jetpack/androidx/releases/room#2.1.0)

```
public boolean [isMigrationRequiredFrom](https://developer.android.com/reference/androidx/room/DatabaseConfiguration#isMigrationRequiredFrom(kotlin.Int))(int version)
```

> [!CAUTION]
> **This method is deprecated.**   
> Use \[isMigrationRequired(int, int)\] which takes \[allowDestructiveMigrationOnDowngrade\] into account, use this instead:
>
> ```
> isMigrationRequired(version, version + 1)
> ```

Returns whether a migration is required from the specified version.

| Parameters |
|---|---|
| `int version` | The schema version. |

| Returns |
|---|---|
| `boolean` | True if a valid migration is required, false otherwise. |