-
-
Notifications
You must be signed in to change notification settings - Fork 24
/
Database.kt
36 lines (30 loc) · 1.03 KB
/
Database.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package org.hyacinthbots.lilybot.database
import com.mongodb.ConnectionString
import com.mongodb.MongoClientSettings
import org.bson.UuidRepresentation
import org.hyacinthbots.lilybot.database.migrations.Migrator
import org.hyacinthbots.lilybot.utils.MONGO_URI
import org.litote.kmongo.coroutine.coroutine
import org.litote.kmongo.reactivestreams.KMongo
class Database {
// Connect to the database using the provided connection URL
private val settings = MongoClientSettings
.builder()
.uuidRepresentation(UuidRepresentation.STANDARD)
.applyConnectionString(ConnectionString(MONGO_URI))
.build()
private val client = KMongo.createClient(settings).coroutine
/** The main database for storing data. */
val mainDatabase get() = client.getDatabase("LilyBot")
/** The database for storing per guild configuration data. */
val configDatabase get() = client.getDatabase("LilyBotConfig")
/**
* Runs the migrations for both databases.
*
* @since 4.0.0
*/
suspend fun migrate() {
Migrator.migrateMain()
Migrator.migrateConfig()
}
}