# 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)

*** ** * ** ***

Common/AllAndroid/JVMNative/C/iOSJavaScript
- Cmn

  ```
  class DatabaseConfiguration
  ```
- android

  ```
  open class DatabaseConfiguration
  ```

*** ** * ** ***

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

## Summary

| ### Public constructors |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/room/DatabaseConfiguration#DatabaseConfiguration(kotlin.String,androidx.room.RoomDatabase.MigrationContainer,kotlin.collections.List,androidx.room.RoomDatabase.JournalMode,kotlin.Boolean,kotlin.Boolean,kotlin.collections.Set,kotlin.collections.List,kotlin.collections.List,kotlin.Boolean,androidx.sqlite.SQLiteDriver,kotlin.coroutines.CoroutineContext)( name: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?, migrationContainer: https://developer.android.com/reference/kotlin/androidx/room/RoomDatabase.MigrationContainer, callbacks: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/room/RoomDatabase.Callback>?, journalMode: https://developer.android.com/reference/kotlin/androidx/room/RoomDatabase.JournalMode, requireMigration: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, allowDestructiveMigrationOnDowngrade: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, migrationNotRequiredFrom: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-set/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html>?, typeConverters: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html>, autoMigrationSpecs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/room/migration/AutoMigrationSpec>, allowDestructiveMigrationForAllTables: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, sqliteDriver: https://developer.android.com/reference/kotlin/androidx/sqlite/SQLiteDriver?, queryCoroutineContext: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.coroutines/-coroutine-context/index.html? )` | N |

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

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

## Public constructors

### DatabaseConfiguration

N

```
DatabaseConfiguration(
    name: String?,
    migrationContainer: RoomDatabase.MigrationContainer,
    callbacks: List<RoomDatabase.Callback>?,
    journalMode: RoomDatabase.JournalMode,
    requireMigration: Boolean,
    allowDestructiveMigrationOnDowngrade: Boolean,
    migrationNotRequiredFrom: Set<Int>?,
    typeConverters: List<Any>,
    autoMigrationSpecs: List<AutoMigrationSpec>,
    allowDestructiveMigrationForAllTables: Boolean,
    sqliteDriver: SQLiteDriver?,
    queryCoroutineContext: CoroutineContext?
)
```

## Public functions

### isMigrationRequired

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

```
open fun isMigrationRequired(fromVersion: Int, toVersion: Int): Boolean
```

Returns whether a migration is required between two versions.

| Parameters |
|---|---|
| `fromVersion: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The old schema version. |
| `toVersion: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The new schema version. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | True if a valid migration is required, false otherwise. |

### isMigrationRequiredFrom

android 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)

```
open fun [isMigrationRequiredFrom](https://developer.android.com/reference/kotlin/androidx/room/DatabaseConfiguration#isMigrationRequiredFrom(kotlin.Int))(version: Int): Boolean
```

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

Returns whether a migration is required from the specified version.

| Parameters |
|---|---|
| `version: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The schema version. |

| Returns |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | True if a valid migration is required, false otherwise. |

## Public properties

### allowDestructiveMigrationForAllTables

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

```
val allowDestructiveMigrationForAllTables: Boolean
```

### allowDestructiveMigrationOnDowngrade

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

```
val allowDestructiveMigrationOnDowngrade: Boolean
```

### allowMainThreadQueries

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

```
val allowMainThreadQueries: Boolean
```

### autoMigrationSpecs

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

```
val autoMigrationSpecs: List<AutoMigrationSpec>
```

### callbacks

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

```
val callbacks: List<RoomDatabase.Callback>?
```

### context

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

```
val context: Context
```

### copyFromAssetPath

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

```
val copyFromAssetPath: String?
```

### copyFromFile

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

```
val copyFromFile: File?
```

### copyFromInputStream

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

```
val copyFromInputStream: Callable<InputStream>?
```

### journalMode

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

```
val journalMode: RoomDatabase.JournalMode
```

### migrationContainer

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

```
val migrationContainer: RoomDatabase.MigrationContainer
```

### multiInstanceInvalidation

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

```
val multiInstanceInvalidation: Boolean
```

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

### name

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

```
val name: String?
```

### prepackagedDatabaseCallback

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

```
val prepackagedDatabaseCallback: RoomDatabase.PrepackagedDatabaseCallback?
```

### queryCoroutineContext

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

```
val queryCoroutineContext: CoroutineContext?
```

### queryExecutor

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

```
val queryExecutor: Executor
```

### requireMigration

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

```
val requireMigration: Boolean
```

### sqliteDriver

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

```
val sqliteDriver: SQLiteDriver?
```

### sqliteOpenHelperFactory

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

```
val sqliteOpenHelperFactory: SupportSQLiteOpenHelper.Factory?
```

### transactionExecutor

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

```
val transactionExecutor: Executor
```

### typeConverters

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

```
val typeConverters: List<Any>
```