I am developing a spring boot application written in Kotlin. We create sql, migrate and populate some data using liquibase.
create script:
CREATE TABLE maps (
id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL PRIMARY KEY,
camera_map OID NOT NULL
);
kotlin entity:
@Entity
@Table(
name = "maps", schema = "fleet",
)
class SavedMapEntity : BaseEntity() {
@Lob
@Basic(fetch = FetchType.LAZY)
@Column(name = "camera_map", nullable = false)
var cameraMap: Blob? = null
}
changelog script:
<changeSet id="11-map-v_1.0.0_00006" author="fleet_management">
<sqlFile path="liquibase/sql/script/v1/11-map/v_1.0.0_000006_insert_map.sql"
splitStatements="false"/>
<comment>
Add default sim floor, department, and map
</comment>
</changeSet>
I tried a few different SQL. give an example
v_1.0.0_000006_insert_map.sql:
DO
$$
DECLARE
temp_camera_map bytea;
temp_camera_map_oid oid;
BEGIN
temp_camera_map := pg_read_binary_file('classpath:liquibase/camera_map')::bytea;
temp_camera_map_oid :=
lo_import('/tmp/temp_camera_map.bin');
INSERT INTO maps (camera_map)
VALUES (temp_image_oid);
END
$$;
but classpath:liquibase/map/camera_map cannot find this file.
Caused by: org.postgresql.util.PSQLException: ERROR: could not open file "classpath:liquibase/map/sim_occupancy_map" for reading: No such file or directory
but the file is under the resources/liquibase/map/ folder, how can I solve it?
And also project structure: