Skip to content

Commit 9d97bc5

Browse files
committed
Set custom name for all indexes
1 parent da3ecc8 commit 9d97bc5

File tree

3 files changed

+25
-6
lines changed

3 files changed

+25
-6
lines changed

bukkit/src/main/kotlin/io/github/rothes/esu/bukkit/module/chatantispam/user/CasDataManager.kt

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ import org.jetbrains.exposed.v1.json.json
2626
object CasDataManager {
2727

2828
object ChatSpamTable: Table("chat_spam_data") {
29-
val user = integer("user").references(StorageManager.UsersTable.dbId, ReferenceOption.CASCADE, ReferenceOption.CASCADE, "fk_chat_spam_data_user__id").uniqueIndex()
30-
val ip = varchar("ip", 45, collate = "ascii_general_ci").uniqueIndex()
29+
val user = integer("user").references(StorageManager.UsersTable.dbId, ReferenceOption.CASCADE, ReferenceOption.CASCADE, "fk_user__id").uniqueIndex("fk_user__id")
30+
val ip = varchar("ip", 45, collate = "ascii_general_ci").uniqueIndex("uk_ip")
3131
val lastAccess = datetime("last_access")
3232
val data = json<SpamData>("data", { it.serialize() }, { it.deserialize() })
3333
}
@@ -63,6 +63,13 @@ object CasDataManager {
6363
}, {
6464
exec("ALTER TABLE `$tableName` DROP FOREIGN KEY `fk_chat_spam_data_user__id`")
6565
exec("ALTER TABLE `$tableName` ADD CONSTRAINT `fk_chat_spam_data_user__id` FOREIGN KEY (`user`) REFERENCES `users` (`id`) ON UPDATE CASCADE ON DELETE CASCADE")
66+
}, {
67+
exec("ALTER TABLE `$tableName` DROP INDEX `user`")
68+
exec("ALTER TABLE `$tableName` DROP INDEX `ip`")
69+
exec("ALTER TABLE `$tableName` ADD UNIQUE INDEX `uk_user` (user)")
70+
exec("ALTER TABLE `$tableName` ADD UNIQUE INDEX `uk_ip` (ip)")
71+
exec("ALTER TABLE `$tableName` DROP FOREIGN KEY `fk_chat_spam_data_user__id`")
72+
exec("ALTER TABLE `$tableName` ADD CONSTRAINT `fk_user__id` FOREIGN KEY (`user`) REFERENCES `users` (`id`) ON UPDATE CASCADE ON DELETE CASCADE")
6673
})
6774
// </editor-fold>
6875
SchemaUtils.create(ChatSpamTable)

bukkit/src/main/kotlin/io/github/rothes/esu/bukkit/module/news/NewsDataManager.kt

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import io.github.rothes.esu.bukkit.util.scheduler.ScheduledTask
55
import io.github.rothes.esu.bukkit.util.scheduler.Scheduler
66
import io.github.rothes.esu.core.storage.StorageManager
77
import io.github.rothes.esu.core.storage.StorageManager.database
8+
import io.github.rothes.esu.core.storage.StorageManager.upgrader
89
import io.github.rothes.esu.core.user.User
910
import io.github.rothes.esu.core.util.DataSerializer.deserialize
1011
import io.github.rothes.esu.core.util.DataSerializer.serialize
@@ -24,15 +25,15 @@ object NewsDataManager {
2425

2526
object NewsTable: Table("news_data") {
2627
val id = integer("id").autoIncrement()
27-
val channel = varchar("channel", 32).index()
28+
val channel = varchar("channel", 32).index("ix_channel")
2829
val time = datetime("time")
2930
val data = json<NewsItem>("data", { it.serialize() }, { it.deserialize() })
3031

3132
override val primaryKey = PrimaryKey(id)
3233
}
3334

3435
object NewsCheckedTable: Table("news_checked") {
35-
val user = integer("user").references(StorageManager.UsersTable.dbId, ReferenceOption.CASCADE, ReferenceOption.NO_ACTION)
36+
val user = integer("user").references(StorageManager.UsersTable.dbId, ReferenceOption.CASCADE, ReferenceOption.CASCADE, "uk_user__id")
3637
val channel = varchar("channel", 32)
3738
val checked = integer("checked")
3839

@@ -47,6 +48,12 @@ object NewsDataManager {
4748
transaction(database) {
4849
SchemaUtils.create(NewsTable)
4950
SchemaUtils.create(NewsCheckedTable)
51+
NewsTable.upgrader({
52+
exec("ALTER TABLE `${NewsTable.tableName}` DROP INDEX `news_data_channel`")
53+
exec("ALTER TABLE `${NewsTable.tableName}` ADD INDEX `ix_channel` (channel)")
54+
exec("ALTER TABLE `${NewsTable.tableName}` DROP FOREIGN KEY `fk_news_checked_user__id`")
55+
exec("ALTER TABLE `${NewsTable.tableName}` ADD CONSTRAINT `fk_user__id` FOREIGN KEY (`user`) REFERENCES `users` (`id`) ON UPDATE CASCADE ON DELETE CASCADE")
56+
})
5057
}
5158
}
5259

core/src/main/kotlin/io/github/rothes/esu/core/storage/StorageManager.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ object StorageManager {
5555

5656
object UsersTable : Table("users") {
5757
val dbId = integer("id").autoIncrement()
58-
val uuid = uuid("uuid").uniqueIndex()
59-
val name = varchar("name", 16, "utf8mb3_general_ci").nullable().uniqueIndex()
58+
val uuid = uuid("uuid").uniqueIndex("uk_uuid")
59+
val name = varchar("name", 16, "utf8mb3_general_ci").nullable().uniqueIndex("uk_name")
6060
val language = varchar("language", 12, "utf8mb3_general_ci").nullable()
6161
val colorScheme = varchar("color_scheme", 32, "utf8mb3_general_ci").nullable()
6262

@@ -85,6 +85,11 @@ object StorageManager {
8585
this[colorScheme] = data[oldTable.colorScheme]
8686
}
8787
SchemaUtils.drop(oldTable)
88+
}, {
89+
exec("ALTER TABLE `$tableName` DROP INDEX `users_uuid_unique`")
90+
exec("ALTER TABLE `$tableName` DROP INDEX `users_name_unique`")
91+
exec("ALTER TABLE `$tableName` ADD UNIQUE INDEX `uk_uuid` (user)")
92+
exec("ALTER TABLE `$tableName` ADD UNIQUE INDEX `uk_name` (name)")
8893
})
8994
// </editor-fold>
9095
SchemaUtils.create(UsersTable)

0 commit comments

Comments
 (0)