Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can I use sqldelight with different databases in same project?

Tags:

sqldelight

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?

like image 978
Ali FELLAHI Avatar asked Oct 21 '25 11:10

Ali FELLAHI


1 Answers

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.

like image 93
Denis Luttcev Avatar answered Oct 26 '25 03:10

Denis Luttcev