From aa480142a26d3cc123076b2d32c6fdde3af27cf8 Mon Sep 17 00:00:00 2001 From: androidlover5842 Date: Tue, 27 Jan 2026 16:56:28 +0530 Subject: [PATCH] Add room image content_hash column if missing --- .../config/RoomImageSchemaFix.kt | 37 +++++++++++++++++++ .../trisolarisserver/models/room/RoomImage.kt | 4 +- 2 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 src/main/kotlin/com/android/trisolarisserver/config/RoomImageSchemaFix.kt diff --git a/src/main/kotlin/com/android/trisolarisserver/config/RoomImageSchemaFix.kt b/src/main/kotlin/com/android/trisolarisserver/config/RoomImageSchemaFix.kt new file mode 100644 index 0000000..3246851 --- /dev/null +++ b/src/main/kotlin/com/android/trisolarisserver/config/RoomImageSchemaFix.kt @@ -0,0 +1,37 @@ +package com.android.trisolarisserver.config + +import org.slf4j.LoggerFactory +import org.springframework.boot.ApplicationArguments +import org.springframework.boot.ApplicationRunner +import org.springframework.jdbc.core.JdbcTemplate +import org.springframework.stereotype.Component + +@Component +class RoomImageSchemaFix( + private val jdbcTemplate: JdbcTemplate +) : ApplicationRunner { + + private val logger = LoggerFactory.getLogger(RoomImageSchemaFix::class.java) + + override fun run(args: ApplicationArguments) { + val version = jdbcTemplate.queryForObject("select version()", String::class.java) ?: return + if (!version.contains("PostgreSQL", ignoreCase = true)) { + return + } + + val hasContentHash = jdbcTemplate.queryForObject( + """ + select count(*) + from information_schema.columns + where table_name = 'room_image' + and column_name = 'content_hash' + """.trimIndent(), + Int::class.java + ) ?: 0 + + if (hasContentHash == 0) { + logger.info("Adding room_image.content_hash column") + jdbcTemplate.execute("alter table room_image add column content_hash text") + } + } +} diff --git a/src/main/kotlin/com/android/trisolarisserver/models/room/RoomImage.kt b/src/main/kotlin/com/android/trisolarisserver/models/room/RoomImage.kt index d8f3aac..7def18d 100644 --- a/src/main/kotlin/com/android/trisolarisserver/models/room/RoomImage.kt +++ b/src/main/kotlin/com/android/trisolarisserver/models/room/RoomImage.kt @@ -33,8 +33,8 @@ class RoomImage( @Column(name = "size_bytes", nullable = false) var sizeBytes: Long, - @Column(name = "content_hash", nullable = false) - var contentHash: String, + @Column(name = "content_hash") + var contentHash: String? = null, @Column(name = "room_type_code") var roomTypeCode: String? = null,