alilosoft
alilosoft

Reputation: 331

Can I use sqldelight with different databases in same project?

I want to use SQLDelight to connect to a SQLite In-Memory database for test and to PostgreSQL server for production, is that use case possible? how I can do the config? and do I need to have .sq files for each database?

Upvotes: 4

Views: 2023

Answers (1)

Denis Luttcev
Denis Luttcev

Reputation: 375

Yes, you can it.

First, create one directory for each database in the "src/main" directory of your module:

src/main/database1/
src/main/database2/

do I need to have .sq files for each database?

Yes, you need it. Put your .sq files into packege-associated directory:

src/main/database1/your/package/name/database1.sq
src/main/database2/your/package/name/database2.sq

Next, configure your databases in module's build.gradle file:

sqldelight {
    database("Database1") {
        packageName = "your.package.name"
        sourceFolders = listOf("database1")
    }
    database("Database2") {
        packageName = "your.package.name"
        sourceFolders = listOf("database2")
    }
}

It is important to specify the correct (created in the previous step) sourceFolders for each database.

Finally, implement the correct driver for each database as mentioned in the SqlDeLight documentation.

Rebuild your project before use databases. SqlDeLight will generate separated implementations classes for each database.

Upvotes: 12

Related Questions