Skip to content

feat: Single step import & export enhancements for CLI #6632

feat: Single step import & export enhancements for CLI

feat: Single step import & export enhancements for CLI #6632

GitHub Actions / Backend Tests failed May 6, 2024 in 1s

132 passed, 29 failed and 0 skipped

Tests failed

Report Passed Failed Skipped Time
backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.api.v2.controllers.batch.StartBatchJobControllerTest.xml 12✅ 58s
backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest.xml 21❌ 5s
backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.api.v2.controllers.V2ExportControllerTest.xml 9✅ 11s
backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.api.v2.controllers.v2ImageUploadController.SecuredV2ImageUploadControllerTest.xml 4✅ 1s
backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.api.v2.controllers.v2ProjectsController.ProjectsControllerWithCacheTest.xml 14✅ 7s
backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.api.v2.controllers.v2ScreenshotController.SecuredKeyScreenshotControllerTest.xml 6✅ 5s
backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.api.v2.controllers.V2UserControllerTest.xml 16✅ 11s
backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.automation.AutomationCachingTest.xml 4❌ 876ms
backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.automation.AutomationCachingWithRedisTest.xml 4❌ 986ms
backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.autoTranslating.AutoTranslatingTest.xml 13✅ 10s
backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.cache.CacheWithoutRedisTest.xml 11✅ 2s
backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.cache.CacheWithRedisTest.xml 11✅ 2s
backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.component.AesTest.xml 1✅ 27ms
backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.component.bucket.TokenBucketManagerTestWithRedis.xml 7✅ 2s
backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.component.fileStorage.FileStorageS3Test.xml 6✅ 418ms
backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.controllers.internal.SqlControllerTest.xml 3✅ 746ms
backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.initialUserCreation.CreateEnabledTest.xml 4✅ 250ms
backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.initialUserCreation.LegacyMigrationTest.xml 1✅ 468ms
backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.security.DenyInternalTest.xml 2✅ 476ms
backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.security.rateLimits.RateLimitsTest.xml 3✅ 686ms
backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.security.rateLimits.RedisRateLimitsTest.xml 1✅ 191ms
backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.service.organizationRole.OrganizationRoleCachingWithRedisTest.xml 6✅ 4s
backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.service.recaptchaValidation.RecaptchaValidationTest.xml 2✅ 301ms

✅ backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.api.v2.controllers.batch.StartBatchJobControllerTest.xml

12 tests were completed in 58s with 12 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.tolgee.api.v2.controllers.batch.StartBatchJobControllerTest 12✅ 58s

✅ io.tolgee.api.v2.controllers.batch.StartBatchJobControllerTest

✅ it clears translations()
✅ it moves to other namespace()
✅ it tags keys()
✅ it copies translations()
✅ it pre-translates by mt()
✅ it deletes tags when not used()
✅ it deletes keys()
✅ it machine translates()
✅ it changes translation state()
✅ it untags keys()
✅ it validates tag length()
✅ it fails on collision when setting namespaces()

❌ backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest.xml

21 tests were completed in 5s with 0 passed, 21 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest 21❌ 5s

❌ io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest

❌ throws when custom slug is used with default storage()
	org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:39.538+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',33,'TRUE','ca1128038379607a69472f5bb3238c6a','.','FALSE','2024-05-06 10:24:39.538+00',1000071001) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
❌ creates content delivery config with auto publish()
	org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:39.873+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',34,'TRUE','358009c20eb0620e4d222c2befc96ea6','.','FALSE','2024-05-06 10:24:39.873+00',1000071002) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
❌ does not set custom slug on update without custom storage()
	org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:40.147+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',35,'TRUE','670c98b043c6394ce94ebce37cb10d1a','.','FALSE','2024-05-06 10:24:40.147+00',1000071003) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
❌ deletes content delivery config()
	org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:40.355+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',36,'TRUE','5b3372a848839f3494063ed095c31159','.','FALSE','2024-05-06 10:24:40.355+00',1000071004) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
❌ throws when custom storage removed and generated slug is kept()
	org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:40.581+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',37,'TRUE','9739f27152e355731273278a03798bed','.','FALSE','2024-05-06 10:24:40.581+00',1000071005) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
❌ creates content delivery config()
	org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:40.79+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',38,'TRUE','6afeff3dc979ce47e8fab90c70be9420','.','FALSE','2024-05-06 10:24:40.79+00',1000071006) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
❌ does not regenerate slug when not using custom storage()
	org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:40.995+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',39,'TRUE','d27a79b30012ba7b3d25afba6f3b7fe7','.','FALSE','2024-05-06 10:24:40.995+00',1000071007) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
❌ adds custom slug on update()
	org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:41.25+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',40,'TRUE','22a7d3fda66f4277f4052be04b00d3cf','.','FALSE','2024-05-06 10:24:41.25+00',1000071008) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
❌ lists content delivery configs()
	org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:41.457+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',41,'TRUE','2ee0ee5a06ee07e1fec97453e2ad3497','.','FALSE','2024-05-06 10:24:41.457+00',1000071009) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
❌ creates content delivery config without pruning()
	org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:41.658+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',42,'TRUE','bb8afd3bad47b54d91e481d36a04dacc','.','FALSE','2024-05-06 10:24:41.658+00',1000071010) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
❌ publishes to default server content delivery config()
	org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:41.854+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',43,'TRUE','9f5acdfcbf15d9e7ca989f90cdbdbe0a','.','FALSE','2024-05-06 10:24:41.854+00',1000071011) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
❌ updates content delivery config()
	org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:42.049+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',44,'TRUE','f540e56a0413dc8eaae3cf6bcc2067d9','.','FALSE','2024-05-06 10:24:42.049+00',1000071012) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
❌ publishes to s3()
	org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:42.245+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',45,'TRUE','8692123ee02004dbcf43307a135d5359','.','FALSE','2024-05-06 10:24:42.245+00',1000071013) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
❌ does not create with custom slug without custom storage()
	org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:42.446+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',46,'TRUE','f868681b8873d4a51dab1a67a1ebf08b','.','FALSE','2024-05-06 10:24:42.446+00',1000071014) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
❌ does not regenerate slug when custom storage not removed()
	org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:42.661+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',47,'TRUE','09b127a15d3972d36bc3fce1ef83a1e8','.','FALSE','2024-05-06 10:24:42.661+00',1000071015) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
❌ get single()
	org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:42.864+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',48,'TRUE','1788bf8668bc69c6e547d408a8a34776','.','FALSE','2024-05-06 10:24:42.864+00',1000071016) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
❌ publishes to azure()
	org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:43.06+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',49,'TRUE','96c7516063f1a4d615925fe0c6024b4e','.','FALSE','2024-05-06 10:24:43.06+00',1000071017) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
❌ removes the automation on update()
	org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:43.252+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',50,'TRUE','c922691e323bc90e182fb7e0bcc8f41f','.','FALSE','2024-05-06 10:24:43.252+00',1000071018) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
❌ creates with custom slug()
	org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:43.447+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',51,'TRUE','306b70cb606feb272816b264418c6a69','.','FALSE','2024-05-06 10:24:43.447+00',1000071019) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
❌ regenerates slug on update()
	org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:43.646+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',52,'TRUE','47b455992b6d637c8757ec679b695609','.','FALSE','2024-05-06 10:24:43.646+00',1000071020) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
❌ doesnt create when feature not enabled()
	org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:43.84+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',53,'TRUE','aae30dbdca37f45ea2cf6e8d5f2cec75','.','FALSE','2024-05-06 10:24:43.84+00',1000071021) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist

✅ backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.api.v2.controllers.V2ExportControllerTest.xml

9 tests were completed in 11s with 9 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.tolgee.api.v2.controllers.V2ExportControllerTest 9✅ 11s

✅ io.tolgee.api.v2.controllers.V2ExportControllerTest

✅ it exports to json with namespaces()
✅ it exports to json()
✅ it exports all languages by default()
✅ it exports only allowed languages()
✅ it filters by keyId in()
✅ the structureDelimiter works()
✅ it exports to single xliff()
✅ it exports to single json()
✅ it reports business event once in a day()

✅ backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.api.v2.controllers.v2ImageUploadController.SecuredV2ImageUploadControllerTest.xml

4 tests were completed in 1s with 4 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.tolgee.api.v2.controllers.v2ImageUploadController.SecuredV2ImageUploadControllerTest 4✅ 1s

✅ io.tolgee.api.v2.controllers.v2ImageUploadController.SecuredV2ImageUploadControllerTest

✅ upload()
✅ getScreenshotFileInvalidTimestamp()
✅ getFile()
✅ getScreenshotFileNoTimestamp()

✅ backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.api.v2.controllers.v2ProjectsController.ProjectsControllerWithCacheTest.xml

14 tests were completed in 7s with 14 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.tolgee.api.v2.controllers.v2ProjectsController.ProjectsControllerWithCacheTest 14✅ 7s

✅ io.tolgee.api.v2.controllers.v2ProjectsController.ProjectsControllerWithCacheTest

✅ getNotPermitted()
✅ get all has language permissions()
✅ setUsersPermissionsNoAccess()
✅ getAll()
✅ revokeUsersAccessOwn()
✅ setUsersPermissionsOwner()
✅ getAllWithStats()
✅ deleteProject()
✅ getAllUsers()
✅ get single returns permissions()
✅ setUsersPermissionsOwn()
✅ revokeUsersAccess()
✅ with-stats returns permitted languages()
✅ revokeUsersAccessIsOrganizationMember()

✅ backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.api.v2.controllers.v2ScreenshotController.SecuredKeyScreenshotControllerTest.xml

6 tests were completed in 5s with 6 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.tolgee.api.v2.controllers.v2ScreenshotController.SecuredKeyScreenshotControllerTest 6✅ 5s

✅ io.tolgee.api.v2.controllers.v2ScreenshotController.SecuredKeyScreenshotControllerTest

✅ uploadScreenshot()
✅ findAll()
✅ getScreenshotFile()
✅ getScreenshotFileInvalidTimestamp()
✅ it applies project permissions when accessing the screenshot()
✅ getScreenshotFileNoTimestamp()

✅ backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.api.v2.controllers.V2UserControllerTest.xml

16 tests were completed in 11s with 16 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.tolgee.api.v2.controllers.V2UserControllerTest 16✅ 11s

✅ io.tolgee.api.v2.controllers.V2UserControllerTest

✅ it validates the user update request data()
✅ it doesn't allow updating the email without password()
✅ returns correct single owned organizations()
✅ it allows updating the display name without password()
✅ it updates the user profile()
✅ it generates super token (with OTP)()
✅ it doesn't allow updating the password without password()
✅ it deletes user()
✅ it sends an email when updating user email()
✅ it invalidates tokens generated prior a password change()
✅ it doesn't allow updating the email with an invalid password()
✅ it doesn't allow updating the password with an invalid password()
✅ it updates the user password()
✅ it validates the password change request data()
✅ it deletes member user and keeps not owning org()
✅ it generates super token (with password)()

❌ backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.automation.AutomationCachingTest.xml

4 tests were completed in 876ms with 0 passed, 4 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.tolgee.automation.AutomationCachingTest 4❌ 876ms

❌ io.tolgee.automation.AutomationCachingTest

❌ delete clears the cache()
	org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:25:19.523+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',193,'TRUE','b38a661a9d54505790eb3812e2306365','.','FALSE','2024-05-06 10:25:19.523+00',1000109001) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
❌ save clears the cache()
	org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:25:19.725+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',194,'TRUE','309f00237de3325eae5fe933a852d1d2','.','FALSE','2024-05-06 10:25:19.725+00',1000109002) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
❌ correctly caches when when request for null activity type()
	org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:25:19.932+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',195,'TRUE','e768bf6c60f79a561b022d2237a6f39f','.','FALSE','2024-05-06 10:25:19.932+00',1000109003) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
❌ caches the automation()
	org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:25:20.142+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',196,'TRUE','16360612deac0fb08a486dfff4de5ff0','.','FALSE','2024-05-06 10:25:20.142+00',1000109004) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist

❌ backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.automation.AutomationCachingWithRedisTest.xml

4 tests were completed in 986ms with 0 passed, 4 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.tolgee.automation.AutomationCachingWithRedisTest 4❌ 986ms

❌ io.tolgee.automation.AutomationCachingWithRedisTest

❌ delete clears the cache()
	org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:25:26.382+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',197,'TRUE','dc7293fec7be6617421ee56606b84436','.','FALSE','2024-05-06 10:25:26.382+00',1000115001) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
❌ save clears the cache()
	org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:25:26.61+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',198,'TRUE','5063d78e12afbbbcc8e1369893172a45','.','FALSE','2024-05-06 10:25:26.61+00',1000115002) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
❌ correctly caches when when request for null activity type()
	org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:25:26.83+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',199,'TRUE','16a2e7eabe38ad66f007c51851763af5','.','FALSE','2024-05-06 10:25:26.83+00',1000115003) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
❌ caches the automation()
	org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:25:27.05+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',200,'TRUE','7e4e6722490f7021025d7b7c01f51f39','.','FALSE','2024-05-06 10:25:27.05+00',1000115004) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist

✅ backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.autoTranslating.AutoTranslatingTest.xml

13 tests were completed in 10s with 13 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.tolgee.autoTranslating.AutoTranslatingTest 13✅ 10s

✅ io.tolgee.autoTranslating.AutoTranslatingTest

✅ consumes last positive credits()
✅ config test tm enabled()
✅ auto translates when base provided (non-existing)()
✅ it returns per language settings()
✅ auto translates when base provided (existing, but untranslated)()
✅ config test mt disabled()
✅ config test mt enabled()
✅ it returns autoTranslateConfig()
✅ doesn't fail when out of credits()
✅ it sets and returns per language settings()
✅ auto translates new key()
✅ auto translates using TM()
✅ config test tm disabled()

✅ backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.cache.CacheWithoutRedisTest.xml

11 tests were completed in 2s with 11 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.tolgee.cache.CacheWithoutRedisTest 11✅ 2s

✅ io.tolgee.cache.CacheWithoutRedisTest

✅ caches permission by organization()
✅ is not caching machine translations (different sourceLang)()
✅ is not caching machine translations (different input)()
✅ is caching()
✅ caches project()
✅ caches user account()
✅ caches permission by project and user()
✅ is not caching machine translations (different service)()
✅ is caching machine translations()
✅ is not caching machine translations (different targetLang)()
✅ it has proper cache manager()

✅ backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.cache.CacheWithRedisTest.xml

11 tests were completed in 2s with 11 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.tolgee.cache.CacheWithRedisTest 11✅ 2s

✅ io.tolgee.cache.CacheWithRedisTest

✅ caches permission by organization()
✅ is not caching machine translations (different sourceLang)()
✅ is not caching machine translations (different input)()
✅ is caching()
✅ caches project()
✅ caches user account()
✅ caches permission by project and user()
✅ is not caching machine translations (different service)()
✅ is caching machine translations()
✅ is not caching machine translations (different targetLang)()
✅ it has proper cache manager()

✅ backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.component.AesTest.xml

1 tests were completed in 27ms with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.tolgee.component.AesTest 1✅ 27ms

✅ io.tolgee.component.AesTest

✅ it works()

✅ backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.component.bucket.TokenBucketManagerTestWithRedis.xml

7 tests were completed in 2s with 7 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.tolgee.component.bucket.TokenBucketManagerTestWithRedis 7✅ 2s

✅ io.tolgee.component.bucket.TokenBucketManagerTestWithRedis

✅ it adds tokens()
✅ sets empty even when not initialized()
✅ it is thread safe()
✅ it checks positive balance()
✅ it consumes credits()
✅ updates tokens()
✅ empties the bucket until specific time()

✅ backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.component.fileStorage.FileStorageS3Test.xml

6 tests were completed in 418ms with 6 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.tolgee.component.fileStorage.FileStorageS3Test 6✅ 418ms

✅ io.tolgee.component.fileStorage.FileStorageS3Test

✅ testStoreFile()
✅ testPruneDirectory()
✅ testGetFile()
✅ testFileExists()
✅ testDeleteFile()
✅ is S3FileStorage()

✅ backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.controllers.internal.SqlControllerTest.xml

3 tests were completed in 746ms with 3 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.tolgee.controllers.internal.SqlControllerTest 3✅ 746ms

✅ io.tolgee.controllers.internal.SqlControllerTest

✅ delete()
✅ getList()
✅ listEndpoints()

✅ backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.initialUserCreation.CreateEnabledTest.xml

4 tests were completed in 250ms with 4 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.tolgee.initialUserCreation.CreateEnabledTest 4✅ 250ms

✅ io.tolgee.initialUserCreation.CreateEnabledTest

✅ passwordUpdated()
✅ passwordStoredInDb()
✅ passwordNotUpdatedAfterChange()
✅ storesPassword()

✅ backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.initialUserCreation.LegacyMigrationTest.xml

1 tests were completed in 468ms with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.tolgee.initialUserCreation.LegacyMigrationTest 1✅ 468ms

✅ io.tolgee.initialUserCreation.LegacyMigrationTest

✅ it migrates the old implicit user when creating the user account()

✅ backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.security.DenyInternalTest.xml

2 tests were completed in 476ms with 2 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.tolgee.security.DenyInternalTest 2✅ 476ms

✅ io.tolgee.security.DenyInternalTest

✅ getListFail()
✅ setPropertyFail()

✅ backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.security.rateLimits.RateLimitsTest.xml

3 tests were completed in 686ms with 3 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.tolgee.security.rateLimits.RateLimitsTest 3✅ 686ms

✅ io.tolgee.security.rateLimits.RateLimitsTest

✅ user request limit works()
✅ limits auth endpoints()
✅ ip request limit works()

✅ backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.security.rateLimits.RedisRateLimitsTest.xml

1 tests were completed in 191ms with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.tolgee.security.rateLimits.RedisRateLimitsTest 1✅ 191ms

✅ io.tolgee.security.rateLimits.RedisRateLimitsTest

✅ ip request limit works()

✅ backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.service.organizationRole.OrganizationRoleCachingWithRedisTest.xml

6 tests were completed in 4s with 6 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.tolgee.service.organizationRole.OrganizationRoleCachingWithRedisTest 6✅ 4s

✅ io.tolgee.service.organizationRole.OrganizationRoleCachingWithRedisTest

✅ it evicts cache on grant role()
✅ it caches organization roles()
✅ it evicts on set member role()
✅ it evicts on invitation accept()
✅ it evicts on remove user()
✅ it evicts on leave()

✅ backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.service.recaptchaValidation.RecaptchaValidationTest.xml

2 tests were completed in 301ms with 2 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
io.tolgee.service.recaptchaValidation.RecaptchaValidationTest 2✅ 301ms

✅ io.tolgee.service.recaptchaValidation.RecaptchaValidationTest

✅ validates token()
✅ returns false when invalid()

Annotations

Check failure on line 104 in backend/data/src/main/kotlin/io/tolgee/service/contentDelivery/ContentDeliveryConfigService.kt

See this annotation in the file changed.

@github-actions github-actions / Backend Tests

io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest ► throws when custom slug is used with default storage()

Failed test found in:
  backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest.xml
Error:
  org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:39.538+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',33,'TRUE','ca1128038379607a69472f5bb3238c6a','.','FALSE','2024-05-06 10:24:39.538+00',1000071001) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
Raw output
org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:39.538+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',33,'TRUE','ca1128038379607a69472f5bb3238c6a','.','FALSE','2024-05-06 10:24:39.538+00',1000071001) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.] [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]; SQL [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]
	at app//org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:256)
	at app//org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:229)
	at app//org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:550)
	at app//org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)
	at app//org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:243)
	at app//org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:135)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.repository.core.support.MethodInvocationValidator.invoke(MethodInvocationValidator.java:94)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:244)
	at app/jdk.proxy3/jdk.proxy3.$Proxy349.isSlugUnique(Unknown Source)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$generateSlug$1.invoke(ContentDeliveryConfigService.kt:104)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$generateSlug$1.invoke(ContentDeliveryConfigService.kt:103)
	at app//io.tolgee.util.SlugGenerator.generate(SlugGenerator.kt:45)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService.generateSlug(ContentDeliveryConfigService.kt:103)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
	at app//org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:699)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$$SpringCGLIB$$0.generateSlug(<generated>)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveContentDeliveryConfigs(TestDataService.kt:233)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveAllProjectDependants(TestDataService.kt:211)
	at app//io.tolgee.development.testDataBuilder.TestDataService.access$saveAllProjectDependants(TestDataService.kt:48)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveAllProjects$1$1.invoke(TestDataService.kt:381)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveAllProjects$1$1.invoke(TestDataService.kt:379)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$lambda$0(transactionUtil.kt:22)
	at app//org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:21)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$default(transactionUtil.kt:11)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:30)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveAllProjects(TestDataService.kt:379)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveProjectData(TestDataService.kt:165)
	at app//io.tolgee.development.testDataBuilder.TestDataService.access$saveProjectData(TestDataService.kt:48)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveTestData$3.invoke(TestDataService.kt:112)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveTestData$3.invoke(TestDataService.kt:111)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$lambda$0(transactionUtil.kt:22)
	at app//org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:21)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$default(transactionUtil.kt:11)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:30)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveTestData(TestDataService.kt:111)
	at jdk.internal.reflect.GeneratedMethodAccessor521.invoke(Unknown Source)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
	at app//org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
	at app//org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:391)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751)
	at app//org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)
	at app//io.tolgee.development.testDataBuilder.TestDataService$$SpringCGLIB$$0.saveTestData(<generated>)
	at app//io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest.setup(ContentDeliveryConfigControllerTest.kt:63)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
	at app//org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptLifecycleMethod(TimeoutExtension.java:128)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptBeforeEachMethod(TimeoutExtension.java:78)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)
	at app//org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeMethodInExtensionContext(ClassBasedTestDescriptor.java:520)
	at app//org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$synthesizeBeforeEachMethodAdapter$23(ClassBasedTestDescriptor.java:505)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeEachMethods$3(TestMethodTestDescriptor.java:174)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeMethodsOrCallbacksUntilExceptionOccurs$6(TestMethodTestDescriptor.java:202)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeMethodsOrCallbacksUntilExceptionOccurs(TestMethodTestDescriptor.java:202)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeEachMethods(TestMethodTestDescriptor.java:171)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:134)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at java.base@17.0.11/java.util.ArrayList.forEach(ArrayList.java:1511)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at java.base@17.0.11/java.util.ArrayList.forEach(ArrayList.java:1511)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
	at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
	at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
	at app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
	at app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
	at app//org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:119)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:94)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:89)
	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:62)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
	at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
	at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65)
	at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
	at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
Caused by: org.hibernate.exception.SQLGrammarException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:39.538+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',33,'TRUE','ca1128038379607a69472f5bb3238c6a','.','FALSE','2024-05-06 10:24:39.538+00',1000071001) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.] [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]
	at app//org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:91)
	at app//org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:58)
	at app//org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:108)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.lambda$performExecution$2(BatchImpl.java:294)
	at app//org.hibernate.engine.jdbc.mutation.internal.PreparedStatementGroupSingleTable.forEachStatement(PreparedStatementGroupSingleTable.java:59)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.performExecution(BatchImpl.java:264)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.execute(BatchImpl.java:242)
	at app//org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.executeBatch(JdbcCoordinatorImpl.java:188)
	at app//org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:662)
	at app//org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:499)
	at app//org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:363)
	at app//org.hibernate.event.internal.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:61)
	at app//org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:127)
	at app//org.hibernate.internal.SessionImpl.autoFlushIfRequired(SessionImpl.java:1386)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.lambda$new$2(ConcreteSqmSelectQueryPlan.java:136)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.withCacheableSqmInterpretation(ConcreteSqmSelectQueryPlan.java:359)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.performList(ConcreteSqmSelectQueryPlan.java:300)
	at app//org.hibernate.query.sqm.internal.QuerySqmImpl.doList(QuerySqmImpl.java:509)
	at app//org.hibernate.query.spi.AbstractSelectionQuery.list(AbstractSelectionQuery.java:427)
	at app//org.hibernate.query.spi.AbstractSelectionQuery.getSingleResult(AbstractSelectionQuery.java:564)
	at app//org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:223)
	at app//org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:92)
	at app//org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:149)
	at app//org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:137)
	at app//org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:136)
	at app//org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:120)
	at app//org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:164)
	at app//org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:143)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:72)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
	at app//org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:391)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)
	... 144 more
Caused by: java.sql.BatchUpdateException: Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:39.538+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',33,'TRUE','ca1128038379607a69472f5bb3238c6a','.','FALSE','2024-05-06 10:24:39.538+00',1000071001) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.
	at app//org.postgresql.jdbc.BatchResultHandler.handleError(BatchResultHandler.java:165)
	at app//org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2402)
	at app//org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:574)
	at app//org.postgresql.jdbc.PgStatement.internalExecuteBatch(PgStatement.java:896)
	at app//org.postgresql.jdbc.PgStatement.executeBatch(PgStatement.java:919)
	at app//org.postgresql.jdbc.PgPreparedStatement.executeBatch(PgPreparedStatement.java:1685)
	at app//com.zaxxer.hikari.pool.ProxyStatement.executeBatch(ProxyStatement.java:127)
	at app//com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeBatch(HikariProxyPreparedStatement.java)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.lambda$performExecution$2(BatchImpl.java:279)
	... 176 more
Caused by: org.postgresql.util.PSQLException: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80
	at app//org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2713)
	at app//org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2401)
	... 183 more

Check failure on line 104 in backend/data/src/main/kotlin/io/tolgee/service/contentDelivery/ContentDeliveryConfigService.kt

See this annotation in the file changed.

@github-actions github-actions / Backend Tests

io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest ► creates content delivery config with auto publish()

Failed test found in:
  backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest.xml
Error:
  org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:39.873+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',34,'TRUE','358009c20eb0620e4d222c2befc96ea6','.','FALSE','2024-05-06 10:24:39.873+00',1000071002) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
Raw output
org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:39.873+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',34,'TRUE','358009c20eb0620e4d222c2befc96ea6','.','FALSE','2024-05-06 10:24:39.873+00',1000071002) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.] [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]; SQL [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]
	at app//org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:256)
	at app//org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:229)
	at app//org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:550)
	at app//org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)
	at app//org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:243)
	at app//org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:135)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.repository.core.support.MethodInvocationValidator.invoke(MethodInvocationValidator.java:94)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:244)
	at app/jdk.proxy3/jdk.proxy3.$Proxy349.isSlugUnique(Unknown Source)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$generateSlug$1.invoke(ContentDeliveryConfigService.kt:104)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$generateSlug$1.invoke(ContentDeliveryConfigService.kt:103)
	at app//io.tolgee.util.SlugGenerator.generate(SlugGenerator.kt:45)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService.generateSlug(ContentDeliveryConfigService.kt:103)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
	at app//org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:699)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$$SpringCGLIB$$0.generateSlug(<generated>)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveContentDeliveryConfigs(TestDataService.kt:233)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveAllProjectDependants(TestDataService.kt:211)
	at app//io.tolgee.development.testDataBuilder.TestDataService.access$saveAllProjectDependants(TestDataService.kt:48)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveAllProjects$1$1.invoke(TestDataService.kt:381)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveAllProjects$1$1.invoke(TestDataService.kt:379)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$lambda$0(transactionUtil.kt:22)
	at app//org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:21)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$default(transactionUtil.kt:11)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:30)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveAllProjects(TestDataService.kt:379)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveProjectData(TestDataService.kt:165)
	at app//io.tolgee.development.testDataBuilder.TestDataService.access$saveProjectData(TestDataService.kt:48)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveTestData$3.invoke(TestDataService.kt:112)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveTestData$3.invoke(TestDataService.kt:111)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$lambda$0(transactionUtil.kt:22)
	at app//org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:21)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$default(transactionUtil.kt:11)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:30)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveTestData(TestDataService.kt:111)
	at jdk.internal.reflect.GeneratedMethodAccessor521.invoke(Unknown Source)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
	at app//org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
	at app//org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:391)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751)
	at app//org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)
	at app//io.tolgee.development.testDataBuilder.TestDataService$$SpringCGLIB$$0.saveTestData(<generated>)
	at app//io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest.setup(ContentDeliveryConfigControllerTest.kt:63)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
	at app//org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptLifecycleMethod(TimeoutExtension.java:128)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptBeforeEachMethod(TimeoutExtension.java:78)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)
	at app//org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeMethodInExtensionContext(ClassBasedTestDescriptor.java:520)
	at app//org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$synthesizeBeforeEachMethodAdapter$23(ClassBasedTestDescriptor.java:505)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeEachMethods$3(TestMethodTestDescriptor.java:174)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeMethodsOrCallbacksUntilExceptionOccurs$6(TestMethodTestDescriptor.java:202)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeMethodsOrCallbacksUntilExceptionOccurs(TestMethodTestDescriptor.java:202)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeEachMethods(TestMethodTestDescriptor.java:171)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:134)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at java.base@17.0.11/java.util.ArrayList.forEach(ArrayList.java:1511)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at java.base@17.0.11/java.util.ArrayList.forEach(ArrayList.java:1511)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
	at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
	at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
	at app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
	at app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
	at app//org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:119)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:94)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:89)
	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:62)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
	at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
	at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65)
	at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
	at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
Caused by: org.hibernate.exception.SQLGrammarException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:39.873+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',34,'TRUE','358009c20eb0620e4d222c2befc96ea6','.','FALSE','2024-05-06 10:24:39.873+00',1000071002) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.] [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]
	at app//org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:91)
	at app//org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:58)
	at app//org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:108)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.lambda$performExecution$2(BatchImpl.java:294)
	at app//org.hibernate.engine.jdbc.mutation.internal.PreparedStatementGroupSingleTable.forEachStatement(PreparedStatementGroupSingleTable.java:59)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.performExecution(BatchImpl.java:264)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.execute(BatchImpl.java:242)
	at app//org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.executeBatch(JdbcCoordinatorImpl.java:188)
	at app//org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:662)
	at app//org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:499)
	at app//org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:363)
	at app//org.hibernate.event.internal.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:61)
	at app//org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:127)
	at app//org.hibernate.internal.SessionImpl.autoFlushIfRequired(SessionImpl.java:1386)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.lambda$new$2(ConcreteSqmSelectQueryPlan.java:136)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.withCacheableSqmInterpretation(ConcreteSqmSelectQueryPlan.java:359)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.performList(ConcreteSqmSelectQueryPlan.java:300)
	at app//org.hibernate.query.sqm.internal.QuerySqmImpl.doList(QuerySqmImpl.java:509)
	at app//org.hibernate.query.spi.AbstractSelectionQuery.list(AbstractSelectionQuery.java:427)
	at app//org.hibernate.query.spi.AbstractSelectionQuery.getSingleResult(AbstractSelectionQuery.java:564)
	at app//org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:223)
	at app//org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:92)
	at app//org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:149)
	at app//org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:137)
	at app//org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:136)
	at app//org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:120)
	at app//org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:164)
	at app//org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:143)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:72)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
	at app//org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:391)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)
	... 144 more
Caused by: java.sql.BatchUpdateException: Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:39.873+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',34,'TRUE','358009c20eb0620e4d222c2befc96ea6','.','FALSE','2024-05-06 10:24:39.873+00',1000071002) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.
	at app//org.postgresql.jdbc.BatchResultHandler.handleError(BatchResultHandler.java:165)
	at app//org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2402)
	at app//org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:574)
	at app//org.postgresql.jdbc.PgStatement.internalExecuteBatch(PgStatement.java:896)
	at app//org.postgresql.jdbc.PgStatement.executeBatch(PgStatement.java:919)
	at app//org.postgresql.jdbc.PgPreparedStatement.executeBatch(PgPreparedStatement.java:1685)
	at app//com.zaxxer.hikari.pool.ProxyStatement.executeBatch(ProxyStatement.java:127)
	at app//com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeBatch(HikariProxyPreparedStatement.java)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.lambda$performExecution$2(BatchImpl.java:279)
	... 176 more
Caused by: org.postgresql.util.PSQLException: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80
	at app//org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2713)
	at app//org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2401)
	... 183 more

Check failure on line 104 in backend/data/src/main/kotlin/io/tolgee/service/contentDelivery/ContentDeliveryConfigService.kt

See this annotation in the file changed.

@github-actions github-actions / Backend Tests

io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest ► does not set custom slug on update without custom storage()

Failed test found in:
  backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest.xml
Error:
  org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:40.147+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',35,'TRUE','670c98b043c6394ce94ebce37cb10d1a','.','FALSE','2024-05-06 10:24:40.147+00',1000071003) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
Raw output
org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:40.147+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',35,'TRUE','670c98b043c6394ce94ebce37cb10d1a','.','FALSE','2024-05-06 10:24:40.147+00',1000071003) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.] [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]; SQL [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]
	at app//org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:256)
	at app//org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:229)
	at app//org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:550)
	at app//org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)
	at app//org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:243)
	at app//org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:135)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.repository.core.support.MethodInvocationValidator.invoke(MethodInvocationValidator.java:94)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:244)
	at app/jdk.proxy3/jdk.proxy3.$Proxy349.isSlugUnique(Unknown Source)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$generateSlug$1.invoke(ContentDeliveryConfigService.kt:104)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$generateSlug$1.invoke(ContentDeliveryConfigService.kt:103)
	at app//io.tolgee.util.SlugGenerator.generate(SlugGenerator.kt:45)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService.generateSlug(ContentDeliveryConfigService.kt:103)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
	at app//org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:699)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$$SpringCGLIB$$0.generateSlug(<generated>)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveContentDeliveryConfigs(TestDataService.kt:233)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveAllProjectDependants(TestDataService.kt:211)
	at app//io.tolgee.development.testDataBuilder.TestDataService.access$saveAllProjectDependants(TestDataService.kt:48)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveAllProjects$1$1.invoke(TestDataService.kt:381)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveAllProjects$1$1.invoke(TestDataService.kt:379)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$lambda$0(transactionUtil.kt:22)
	at app//org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:21)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$default(transactionUtil.kt:11)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:30)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveAllProjects(TestDataService.kt:379)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveProjectData(TestDataService.kt:165)
	at app//io.tolgee.development.testDataBuilder.TestDataService.access$saveProjectData(TestDataService.kt:48)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveTestData$3.invoke(TestDataService.kt:112)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveTestData$3.invoke(TestDataService.kt:111)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$lambda$0(transactionUtil.kt:22)
	at app//org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:21)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$default(transactionUtil.kt:11)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:30)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveTestData(TestDataService.kt:111)
	at jdk.internal.reflect.GeneratedMethodAccessor521.invoke(Unknown Source)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
	at app//org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
	at app//org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:391)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751)
	at app//org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)
	at app//io.tolgee.development.testDataBuilder.TestDataService$$SpringCGLIB$$0.saveTestData(<generated>)
	at app//io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest.setup(ContentDeliveryConfigControllerTest.kt:63)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
	at app//org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptLifecycleMethod(TimeoutExtension.java:128)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptBeforeEachMethod(TimeoutExtension.java:78)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)
	at app//org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeMethodInExtensionContext(ClassBasedTestDescriptor.java:520)
	at app//org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$synthesizeBeforeEachMethodAdapter$23(ClassBasedTestDescriptor.java:505)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeEachMethods$3(TestMethodTestDescriptor.java:174)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeMethodsOrCallbacksUntilExceptionOccurs$6(TestMethodTestDescriptor.java:202)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeMethodsOrCallbacksUntilExceptionOccurs(TestMethodTestDescriptor.java:202)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeEachMethods(TestMethodTestDescriptor.java:171)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:134)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at java.base@17.0.11/java.util.ArrayList.forEach(ArrayList.java:1511)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at java.base@17.0.11/java.util.ArrayList.forEach(ArrayList.java:1511)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
	at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
	at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
	at app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
	at app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
	at app//org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:119)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:94)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:89)
	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:62)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
	at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
	at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65)
	at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
	at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
Caused by: org.hibernate.exception.SQLGrammarException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:40.147+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',35,'TRUE','670c98b043c6394ce94ebce37cb10d1a','.','FALSE','2024-05-06 10:24:40.147+00',1000071003) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.] [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]
	at app//org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:91)
	at app//org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:58)
	at app//org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:108)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.lambda$performExecution$2(BatchImpl.java:294)
	at app//org.hibernate.engine.jdbc.mutation.internal.PreparedStatementGroupSingleTable.forEachStatement(PreparedStatementGroupSingleTable.java:59)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.performExecution(BatchImpl.java:264)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.execute(BatchImpl.java:242)
	at app//org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.executeBatch(JdbcCoordinatorImpl.java:188)
	at app//org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:662)
	at app//org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:499)
	at app//org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:363)
	at app//org.hibernate.event.internal.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:61)
	at app//org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:127)
	at app//org.hibernate.internal.SessionImpl.autoFlushIfRequired(SessionImpl.java:1386)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.lambda$new$2(ConcreteSqmSelectQueryPlan.java:136)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.withCacheableSqmInterpretation(ConcreteSqmSelectQueryPlan.java:359)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.performList(ConcreteSqmSelectQueryPlan.java:300)
	at app//org.hibernate.query.sqm.internal.QuerySqmImpl.doList(QuerySqmImpl.java:509)
	at app//org.hibernate.query.spi.AbstractSelectionQuery.list(AbstractSelectionQuery.java:427)
	at app//org.hibernate.query.spi.AbstractSelectionQuery.getSingleResult(AbstractSelectionQuery.java:564)
	at app//org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:223)
	at app//org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:92)
	at app//org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:149)
	at app//org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:137)
	at app//org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:136)
	at app//org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:120)
	at app//org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:164)
	at app//org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:143)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:72)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
	at app//org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:391)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)
	... 144 more
Caused by: java.sql.BatchUpdateException: Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:40.147+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',35,'TRUE','670c98b043c6394ce94ebce37cb10d1a','.','FALSE','2024-05-06 10:24:40.147+00',1000071003) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.
	at app//org.postgresql.jdbc.BatchResultHandler.handleError(BatchResultHandler.java:165)
	at app//org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2402)
	at app//org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:574)
	at app//org.postgresql.jdbc.PgStatement.internalExecuteBatch(PgStatement.java:896)
	at app//org.postgresql.jdbc.PgStatement.executeBatch(PgStatement.java:919)
	at app//org.postgresql.jdbc.PgPreparedStatement.executeBatch(PgPreparedStatement.java:1685)
	at app//com.zaxxer.hikari.pool.ProxyStatement.executeBatch(ProxyStatement.java:127)
	at app//com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeBatch(HikariProxyPreparedStatement.java)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.lambda$performExecution$2(BatchImpl.java:279)
	... 176 more
Caused by: org.postgresql.util.PSQLException: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80
	at app//org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2713)
	at app//org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2401)
	... 183 more

Check failure on line 104 in backend/data/src/main/kotlin/io/tolgee/service/contentDelivery/ContentDeliveryConfigService.kt

See this annotation in the file changed.

@github-actions github-actions / Backend Tests

io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest ► deletes content delivery config()

Failed test found in:
  backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest.xml
Error:
  org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:40.355+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',36,'TRUE','5b3372a848839f3494063ed095c31159','.','FALSE','2024-05-06 10:24:40.355+00',1000071004) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
Raw output
org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:40.355+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',36,'TRUE','5b3372a848839f3494063ed095c31159','.','FALSE','2024-05-06 10:24:40.355+00',1000071004) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.] [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]; SQL [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]
	at app//org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:256)
	at app//org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:229)
	at app//org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:550)
	at app//org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)
	at app//org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:243)
	at app//org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:135)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.repository.core.support.MethodInvocationValidator.invoke(MethodInvocationValidator.java:94)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:244)
	at app/jdk.proxy3/jdk.proxy3.$Proxy349.isSlugUnique(Unknown Source)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$generateSlug$1.invoke(ContentDeliveryConfigService.kt:104)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$generateSlug$1.invoke(ContentDeliveryConfigService.kt:103)
	at app//io.tolgee.util.SlugGenerator.generate(SlugGenerator.kt:45)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService.generateSlug(ContentDeliveryConfigService.kt:103)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
	at app//org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:699)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$$SpringCGLIB$$0.generateSlug(<generated>)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveContentDeliveryConfigs(TestDataService.kt:233)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveAllProjectDependants(TestDataService.kt:211)
	at app//io.tolgee.development.testDataBuilder.TestDataService.access$saveAllProjectDependants(TestDataService.kt:48)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveAllProjects$1$1.invoke(TestDataService.kt:381)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveAllProjects$1$1.invoke(TestDataService.kt:379)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$lambda$0(transactionUtil.kt:22)
	at app//org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:21)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$default(transactionUtil.kt:11)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:30)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveAllProjects(TestDataService.kt:379)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveProjectData(TestDataService.kt:165)
	at app//io.tolgee.development.testDataBuilder.TestDataService.access$saveProjectData(TestDataService.kt:48)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveTestData$3.invoke(TestDataService.kt:112)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveTestData$3.invoke(TestDataService.kt:111)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$lambda$0(transactionUtil.kt:22)
	at app//org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:21)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$default(transactionUtil.kt:11)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:30)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveTestData(TestDataService.kt:111)
	at jdk.internal.reflect.GeneratedMethodAccessor521.invoke(Unknown Source)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
	at app//org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
	at app//org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:391)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751)
	at app//org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)
	at app//io.tolgee.development.testDataBuilder.TestDataService$$SpringCGLIB$$0.saveTestData(<generated>)
	at app//io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest.setup(ContentDeliveryConfigControllerTest.kt:63)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
	at app//org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptLifecycleMethod(TimeoutExtension.java:128)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptBeforeEachMethod(TimeoutExtension.java:78)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)
	at app//org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeMethodInExtensionContext(ClassBasedTestDescriptor.java:520)
	at app//org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$synthesizeBeforeEachMethodAdapter$23(ClassBasedTestDescriptor.java:505)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeEachMethods$3(TestMethodTestDescriptor.java:174)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeMethodsOrCallbacksUntilExceptionOccurs$6(TestMethodTestDescriptor.java:202)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeMethodsOrCallbacksUntilExceptionOccurs(TestMethodTestDescriptor.java:202)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeEachMethods(TestMethodTestDescriptor.java:171)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:134)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at java.base@17.0.11/java.util.ArrayList.forEach(ArrayList.java:1511)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at java.base@17.0.11/java.util.ArrayList.forEach(ArrayList.java:1511)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
	at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
	at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
	at app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
	at app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
	at app//org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:119)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:94)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:89)
	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:62)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
	at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
	at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65)
	at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
	at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
Caused by: org.hibernate.exception.SQLGrammarException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:40.355+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',36,'TRUE','5b3372a848839f3494063ed095c31159','.','FALSE','2024-05-06 10:24:40.355+00',1000071004) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.] [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]
	at app//org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:91)
	at app//org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:58)
	at app//org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:108)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.lambda$performExecution$2(BatchImpl.java:294)
	at app//org.hibernate.engine.jdbc.mutation.internal.PreparedStatementGroupSingleTable.forEachStatement(PreparedStatementGroupSingleTable.java:59)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.performExecution(BatchImpl.java:264)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.execute(BatchImpl.java:242)
	at app//org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.executeBatch(JdbcCoordinatorImpl.java:188)
	at app//org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:662)
	at app//org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:499)
	at app//org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:363)
	at app//org.hibernate.event.internal.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:61)
	at app//org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:127)
	at app//org.hibernate.internal.SessionImpl.autoFlushIfRequired(SessionImpl.java:1386)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.lambda$new$2(ConcreteSqmSelectQueryPlan.java:136)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.withCacheableSqmInterpretation(ConcreteSqmSelectQueryPlan.java:359)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.performList(ConcreteSqmSelectQueryPlan.java:300)
	at app//org.hibernate.query.sqm.internal.QuerySqmImpl.doList(QuerySqmImpl.java:509)
	at app//org.hibernate.query.spi.AbstractSelectionQuery.list(AbstractSelectionQuery.java:427)
	at app//org.hibernate.query.spi.AbstractSelectionQuery.getSingleResult(AbstractSelectionQuery.java:564)
	at app//org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:223)
	at app//org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:92)
	at app//org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:149)
	at app//org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:137)
	at app//org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:136)
	at app//org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:120)
	at app//org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:164)
	at app//org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:143)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:72)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
	at app//org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:391)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)
	... 144 more
Caused by: java.sql.BatchUpdateException: Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:40.355+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',36,'TRUE','5b3372a848839f3494063ed095c31159','.','FALSE','2024-05-06 10:24:40.355+00',1000071004) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.
	at app//org.postgresql.jdbc.BatchResultHandler.handleError(BatchResultHandler.java:165)
	at app//org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2402)
	at app//org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:574)
	at app//org.postgresql.jdbc.PgStatement.internalExecuteBatch(PgStatement.java:896)
	at app//org.postgresql.jdbc.PgStatement.executeBatch(PgStatement.java:919)
	at app//org.postgresql.jdbc.PgPreparedStatement.executeBatch(PgPreparedStatement.java:1685)
	at app//com.zaxxer.hikari.pool.ProxyStatement.executeBatch(ProxyStatement.java:127)
	at app//com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeBatch(HikariProxyPreparedStatement.java)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.lambda$performExecution$2(BatchImpl.java:279)
	... 176 more
Caused by: org.postgresql.util.PSQLException: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80
	at app//org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2713)
	at app//org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2401)
	... 183 more

Check failure on line 104 in backend/data/src/main/kotlin/io/tolgee/service/contentDelivery/ContentDeliveryConfigService.kt

See this annotation in the file changed.

@github-actions github-actions / Backend Tests

io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest ► throws when custom storage removed and generated slug is kept()

Failed test found in:
  backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest.xml
Error:
  org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:40.581+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',37,'TRUE','9739f27152e355731273278a03798bed','.','FALSE','2024-05-06 10:24:40.581+00',1000071005) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
Raw output
org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:40.581+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',37,'TRUE','9739f27152e355731273278a03798bed','.','FALSE','2024-05-06 10:24:40.581+00',1000071005) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.] [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]; SQL [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]
	at app//org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:256)
	at app//org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:229)
	at app//org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:550)
	at app//org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)
	at app//org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:243)
	at app//org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:135)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.repository.core.support.MethodInvocationValidator.invoke(MethodInvocationValidator.java:94)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:244)
	at app/jdk.proxy3/jdk.proxy3.$Proxy349.isSlugUnique(Unknown Source)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$generateSlug$1.invoke(ContentDeliveryConfigService.kt:104)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$generateSlug$1.invoke(ContentDeliveryConfigService.kt:103)
	at app//io.tolgee.util.SlugGenerator.generate(SlugGenerator.kt:45)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService.generateSlug(ContentDeliveryConfigService.kt:103)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
	at app//org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:699)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$$SpringCGLIB$$0.generateSlug(<generated>)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveContentDeliveryConfigs(TestDataService.kt:233)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveAllProjectDependants(TestDataService.kt:211)
	at app//io.tolgee.development.testDataBuilder.TestDataService.access$saveAllProjectDependants(TestDataService.kt:48)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveAllProjects$1$1.invoke(TestDataService.kt:381)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveAllProjects$1$1.invoke(TestDataService.kt:379)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$lambda$0(transactionUtil.kt:22)
	at app//org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:21)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$default(transactionUtil.kt:11)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:30)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveAllProjects(TestDataService.kt:379)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveProjectData(TestDataService.kt:165)
	at app//io.tolgee.development.testDataBuilder.TestDataService.access$saveProjectData(TestDataService.kt:48)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveTestData$3.invoke(TestDataService.kt:112)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveTestData$3.invoke(TestDataService.kt:111)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$lambda$0(transactionUtil.kt:22)
	at app//org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:21)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$default(transactionUtil.kt:11)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:30)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveTestData(TestDataService.kt:111)
	at jdk.internal.reflect.GeneratedMethodAccessor521.invoke(Unknown Source)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
	at app//org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
	at app//org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:391)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751)
	at app//org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)
	at app//io.tolgee.development.testDataBuilder.TestDataService$$SpringCGLIB$$0.saveTestData(<generated>)
	at app//io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest.setup(ContentDeliveryConfigControllerTest.kt:63)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
	at app//org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptLifecycleMethod(TimeoutExtension.java:128)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptBeforeEachMethod(TimeoutExtension.java:78)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)
	at app//org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeMethodInExtensionContext(ClassBasedTestDescriptor.java:520)
	at app//org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$synthesizeBeforeEachMethodAdapter$23(ClassBasedTestDescriptor.java:505)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeEachMethods$3(TestMethodTestDescriptor.java:174)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeMethodsOrCallbacksUntilExceptionOccurs$6(TestMethodTestDescriptor.java:202)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeMethodsOrCallbacksUntilExceptionOccurs(TestMethodTestDescriptor.java:202)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeEachMethods(TestMethodTestDescriptor.java:171)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:134)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at java.base@17.0.11/java.util.ArrayList.forEach(ArrayList.java:1511)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at java.base@17.0.11/java.util.ArrayList.forEach(ArrayList.java:1511)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
	at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
	at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
	at app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
	at app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
	at app//org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:119)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:94)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:89)
	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:62)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
	at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
	at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65)
	at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
	at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
Caused by: org.hibernate.exception.SQLGrammarException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:40.581+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',37,'TRUE','9739f27152e355731273278a03798bed','.','FALSE','2024-05-06 10:24:40.581+00',1000071005) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.] [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]
	at app//org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:91)
	at app//org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:58)
	at app//org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:108)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.lambda$performExecution$2(BatchImpl.java:294)
	at app//org.hibernate.engine.jdbc.mutation.internal.PreparedStatementGroupSingleTable.forEachStatement(PreparedStatementGroupSingleTable.java:59)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.performExecution(BatchImpl.java:264)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.execute(BatchImpl.java:242)
	at app//org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.executeBatch(JdbcCoordinatorImpl.java:188)
	at app//org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:662)
	at app//org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:499)
	at app//org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:363)
	at app//org.hibernate.event.internal.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:61)
	at app//org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:127)
	at app//org.hibernate.internal.SessionImpl.autoFlushIfRequired(SessionImpl.java:1386)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.lambda$new$2(ConcreteSqmSelectQueryPlan.java:136)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.withCacheableSqmInterpretation(ConcreteSqmSelectQueryPlan.java:359)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.performList(ConcreteSqmSelectQueryPlan.java:300)
	at app//org.hibernate.query.sqm.internal.QuerySqmImpl.doList(QuerySqmImpl.java:509)
	at app//org.hibernate.query.spi.AbstractSelectionQuery.list(AbstractSelectionQuery.java:427)
	at app//org.hibernate.query.spi.AbstractSelectionQuery.getSingleResult(AbstractSelectionQuery.java:564)
	at app//org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:223)
	at app//org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:92)
	at app//org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:149)
	at app//org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:137)
	at app//org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:136)
	at app//org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:120)
	at app//org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:164)
	at app//org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:143)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:72)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
	at app//org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:391)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)
	... 144 more
Caused by: java.sql.BatchUpdateException: Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:40.581+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',37,'TRUE','9739f27152e355731273278a03798bed','.','FALSE','2024-05-06 10:24:40.581+00',1000071005) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.
	at app//org.postgresql.jdbc.BatchResultHandler.handleError(BatchResultHandler.java:165)
	at app//org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2402)
	at app//org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:574)
	at app//org.postgresql.jdbc.PgStatement.internalExecuteBatch(PgStatement.java:896)
	at app//org.postgresql.jdbc.PgStatement.executeBatch(PgStatement.java:919)
	at app//org.postgresql.jdbc.PgPreparedStatement.executeBatch(PgPreparedStatement.java:1685)
	at app//com.zaxxer.hikari.pool.ProxyStatement.executeBatch(ProxyStatement.java:127)
	at app//com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeBatch(HikariProxyPreparedStatement.java)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.lambda$performExecution$2(BatchImpl.java:279)
	... 176 more
Caused by: org.postgresql.util.PSQLException: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80
	at app//org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2713)
	at app//org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2401)
	... 183 more

Check failure on line 104 in backend/data/src/main/kotlin/io/tolgee/service/contentDelivery/ContentDeliveryConfigService.kt

See this annotation in the file changed.

@github-actions github-actions / Backend Tests

io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest ► creates content delivery config()

Failed test found in:
  backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest.xml
Error:
  org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:40.79+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',38,'TRUE','6afeff3dc979ce47e8fab90c70be9420','.','FALSE','2024-05-06 10:24:40.79+00',1000071006) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
Raw output
org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:40.79+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',38,'TRUE','6afeff3dc979ce47e8fab90c70be9420','.','FALSE','2024-05-06 10:24:40.79+00',1000071006) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.] [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]; SQL [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]
	at app//org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:256)
	at app//org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:229)
	at app//org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:550)
	at app//org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)
	at app//org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:243)
	at app//org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:135)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.repository.core.support.MethodInvocationValidator.invoke(MethodInvocationValidator.java:94)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:244)
	at app/jdk.proxy3/jdk.proxy3.$Proxy349.isSlugUnique(Unknown Source)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$generateSlug$1.invoke(ContentDeliveryConfigService.kt:104)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$generateSlug$1.invoke(ContentDeliveryConfigService.kt:103)
	at app//io.tolgee.util.SlugGenerator.generate(SlugGenerator.kt:45)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService.generateSlug(ContentDeliveryConfigService.kt:103)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
	at app//org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:699)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$$SpringCGLIB$$0.generateSlug(<generated>)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveContentDeliveryConfigs(TestDataService.kt:233)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveAllProjectDependants(TestDataService.kt:211)
	at app//io.tolgee.development.testDataBuilder.TestDataService.access$saveAllProjectDependants(TestDataService.kt:48)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveAllProjects$1$1.invoke(TestDataService.kt:381)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveAllProjects$1$1.invoke(TestDataService.kt:379)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$lambda$0(transactionUtil.kt:22)
	at app//org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:21)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$default(transactionUtil.kt:11)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:30)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveAllProjects(TestDataService.kt:379)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveProjectData(TestDataService.kt:165)
	at app//io.tolgee.development.testDataBuilder.TestDataService.access$saveProjectData(TestDataService.kt:48)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveTestData$3.invoke(TestDataService.kt:112)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveTestData$3.invoke(TestDataService.kt:111)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$lambda$0(transactionUtil.kt:22)
	at app//org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:21)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$default(transactionUtil.kt:11)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:30)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveTestData(TestDataService.kt:111)
	at jdk.internal.reflect.GeneratedMethodAccessor521.invoke(Unknown Source)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
	at app//org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
	at app//org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:391)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751)
	at app//org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)
	at app//io.tolgee.development.testDataBuilder.TestDataService$$SpringCGLIB$$0.saveTestData(<generated>)
	at app//io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest.setup(ContentDeliveryConfigControllerTest.kt:63)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
	at app//org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptLifecycleMethod(TimeoutExtension.java:128)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptBeforeEachMethod(TimeoutExtension.java:78)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)
	at app//org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeMethodInExtensionContext(ClassBasedTestDescriptor.java:520)
	at app//org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$synthesizeBeforeEachMethodAdapter$23(ClassBasedTestDescriptor.java:505)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeEachMethods$3(TestMethodTestDescriptor.java:174)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeMethodsOrCallbacksUntilExceptionOccurs$6(TestMethodTestDescriptor.java:202)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeMethodsOrCallbacksUntilExceptionOccurs(TestMethodTestDescriptor.java:202)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeEachMethods(TestMethodTestDescriptor.java:171)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:134)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at java.base@17.0.11/java.util.ArrayList.forEach(ArrayList.java:1511)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at java.base@17.0.11/java.util.ArrayList.forEach(ArrayList.java:1511)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
	at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
	at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
	at app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
	at app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
	at app//org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:119)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:94)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:89)
	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:62)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
	at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
	at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65)
	at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
	at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
Caused by: org.hibernate.exception.SQLGrammarException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:40.79+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',38,'TRUE','6afeff3dc979ce47e8fab90c70be9420','.','FALSE','2024-05-06 10:24:40.79+00',1000071006) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.] [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]
	at app//org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:91)
	at app//org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:58)
	at app//org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:108)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.lambda$performExecution$2(BatchImpl.java:294)
	at app//org.hibernate.engine.jdbc.mutation.internal.PreparedStatementGroupSingleTable.forEachStatement(PreparedStatementGroupSingleTable.java:59)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.performExecution(BatchImpl.java:264)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.execute(BatchImpl.java:242)
	at app//org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.executeBatch(JdbcCoordinatorImpl.java:188)
	at app//org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:662)
	at app//org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:499)
	at app//org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:363)
	at app//org.hibernate.event.internal.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:61)
	at app//org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:127)
	at app//org.hibernate.internal.SessionImpl.autoFlushIfRequired(SessionImpl.java:1386)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.lambda$new$2(ConcreteSqmSelectQueryPlan.java:136)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.withCacheableSqmInterpretation(ConcreteSqmSelectQueryPlan.java:359)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.performList(ConcreteSqmSelectQueryPlan.java:300)
	at app//org.hibernate.query.sqm.internal.QuerySqmImpl.doList(QuerySqmImpl.java:509)
	at app//org.hibernate.query.spi.AbstractSelectionQuery.list(AbstractSelectionQuery.java:427)
	at app//org.hibernate.query.spi.AbstractSelectionQuery.getSingleResult(AbstractSelectionQuery.java:564)
	at app//org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:223)
	at app//org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:92)
	at app//org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:149)
	at app//org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:137)
	at app//org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:136)
	at app//org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:120)
	at app//org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:164)
	at app//org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:143)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:72)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
	at app//org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:391)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)
	... 144 more
Caused by: java.sql.BatchUpdateException: Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:40.79+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',38,'TRUE','6afeff3dc979ce47e8fab90c70be9420','.','FALSE','2024-05-06 10:24:40.79+00',1000071006) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.
	at app//org.postgresql.jdbc.BatchResultHandler.handleError(BatchResultHandler.java:165)
	at app//org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2402)
	at app//org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:574)
	at app//org.postgresql.jdbc.PgStatement.internalExecuteBatch(PgStatement.java:896)
	at app//org.postgresql.jdbc.PgStatement.executeBatch(PgStatement.java:919)
	at app//org.postgresql.jdbc.PgPreparedStatement.executeBatch(PgPreparedStatement.java:1685)
	at app//com.zaxxer.hikari.pool.ProxyStatement.executeBatch(ProxyStatement.java:127)
	at app//com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeBatch(HikariProxyPreparedStatement.java)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.lambda$performExecution$2(BatchImpl.java:279)
	... 176 more
Caused by: org.postgresql.util.PSQLException: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80
	at app//org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2713)
	at app//org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2401)
	... 183 more

Check failure on line 104 in backend/data/src/main/kotlin/io/tolgee/service/contentDelivery/ContentDeliveryConfigService.kt

See this annotation in the file changed.

@github-actions github-actions / Backend Tests

io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest ► does not regenerate slug when not using custom storage()

Failed test found in:
  backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest.xml
Error:
  org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:40.995+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',39,'TRUE','d27a79b30012ba7b3d25afba6f3b7fe7','.','FALSE','2024-05-06 10:24:40.995+00',1000071007) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
Raw output
org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:40.995+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',39,'TRUE','d27a79b30012ba7b3d25afba6f3b7fe7','.','FALSE','2024-05-06 10:24:40.995+00',1000071007) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.] [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]; SQL [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]
	at app//org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:256)
	at app//org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:229)
	at app//org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:550)
	at app//org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)
	at app//org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:243)
	at app//org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:135)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.repository.core.support.MethodInvocationValidator.invoke(MethodInvocationValidator.java:94)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:244)
	at app/jdk.proxy3/jdk.proxy3.$Proxy349.isSlugUnique(Unknown Source)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$generateSlug$1.invoke(ContentDeliveryConfigService.kt:104)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$generateSlug$1.invoke(ContentDeliveryConfigService.kt:103)
	at app//io.tolgee.util.SlugGenerator.generate(SlugGenerator.kt:45)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService.generateSlug(ContentDeliveryConfigService.kt:103)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
	at app//org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:699)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$$SpringCGLIB$$0.generateSlug(<generated>)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveContentDeliveryConfigs(TestDataService.kt:233)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveAllProjectDependants(TestDataService.kt:211)
	at app//io.tolgee.development.testDataBuilder.TestDataService.access$saveAllProjectDependants(TestDataService.kt:48)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveAllProjects$1$1.invoke(TestDataService.kt:381)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveAllProjects$1$1.invoke(TestDataService.kt:379)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$lambda$0(transactionUtil.kt:22)
	at app//org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:21)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$default(transactionUtil.kt:11)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:30)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveAllProjects(TestDataService.kt:379)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveProjectData(TestDataService.kt:165)
	at app//io.tolgee.development.testDataBuilder.TestDataService.access$saveProjectData(TestDataService.kt:48)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveTestData$3.invoke(TestDataService.kt:112)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveTestData$3.invoke(TestDataService.kt:111)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$lambda$0(transactionUtil.kt:22)
	at app//org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:21)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$default(transactionUtil.kt:11)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:30)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveTestData(TestDataService.kt:111)
	at jdk.internal.reflect.GeneratedMethodAccessor521.invoke(Unknown Source)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
	at app//org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
	at app//org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:391)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751)
	at app//org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)
	at app//io.tolgee.development.testDataBuilder.TestDataService$$SpringCGLIB$$0.saveTestData(<generated>)
	at app//io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest.setup(ContentDeliveryConfigControllerTest.kt:63)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
	at app//org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptLifecycleMethod(TimeoutExtension.java:128)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptBeforeEachMethod(TimeoutExtension.java:78)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)
	at app//org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeMethodInExtensionContext(ClassBasedTestDescriptor.java:520)
	at app//org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$synthesizeBeforeEachMethodAdapter$23(ClassBasedTestDescriptor.java:505)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeEachMethods$3(TestMethodTestDescriptor.java:174)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeMethodsOrCallbacksUntilExceptionOccurs$6(TestMethodTestDescriptor.java:202)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeMethodsOrCallbacksUntilExceptionOccurs(TestMethodTestDescriptor.java:202)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeEachMethods(TestMethodTestDescriptor.java:171)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:134)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at java.base@17.0.11/java.util.ArrayList.forEach(ArrayList.java:1511)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at java.base@17.0.11/java.util.ArrayList.forEach(ArrayList.java:1511)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
	at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
	at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
	at app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
	at app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
	at app//org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:119)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:94)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:89)
	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:62)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
	at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
	at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65)
	at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
	at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
Caused by: org.hibernate.exception.SQLGrammarException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:40.995+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',39,'TRUE','d27a79b30012ba7b3d25afba6f3b7fe7','.','FALSE','2024-05-06 10:24:40.995+00',1000071007) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.] [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]
	at app//org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:91)
	at app//org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:58)
	at app//org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:108)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.lambda$performExecution$2(BatchImpl.java:294)
	at app//org.hibernate.engine.jdbc.mutation.internal.PreparedStatementGroupSingleTable.forEachStatement(PreparedStatementGroupSingleTable.java:59)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.performExecution(BatchImpl.java:264)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.execute(BatchImpl.java:242)
	at app//org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.executeBatch(JdbcCoordinatorImpl.java:188)
	at app//org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:662)
	at app//org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:499)
	at app//org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:363)
	at app//org.hibernate.event.internal.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:61)
	at app//org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:127)
	at app//org.hibernate.internal.SessionImpl.autoFlushIfRequired(SessionImpl.java:1386)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.lambda$new$2(ConcreteSqmSelectQueryPlan.java:136)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.withCacheableSqmInterpretation(ConcreteSqmSelectQueryPlan.java:359)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.performList(ConcreteSqmSelectQueryPlan.java:300)
	at app//org.hibernate.query.sqm.internal.QuerySqmImpl.doList(QuerySqmImpl.java:509)
	at app//org.hibernate.query.spi.AbstractSelectionQuery.list(AbstractSelectionQuery.java:427)
	at app//org.hibernate.query.spi.AbstractSelectionQuery.getSingleResult(AbstractSelectionQuery.java:564)
	at app//org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:223)
	at app//org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:92)
	at app//org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:149)
	at app//org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:137)
	at app//org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:136)
	at app//org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:120)
	at app//org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:164)
	at app//org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:143)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:72)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
	at app//org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:391)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)
	... 144 more
Caused by: java.sql.BatchUpdateException: Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:40.995+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',39,'TRUE','d27a79b30012ba7b3d25afba6f3b7fe7','.','FALSE','2024-05-06 10:24:40.995+00',1000071007) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.
	at app//org.postgresql.jdbc.BatchResultHandler.handleError(BatchResultHandler.java:165)
	at app//org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2402)
	at app//org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:574)
	at app//org.postgresql.jdbc.PgStatement.internalExecuteBatch(PgStatement.java:896)
	at app//org.postgresql.jdbc.PgStatement.executeBatch(PgStatement.java:919)
	at app//org.postgresql.jdbc.PgPreparedStatement.executeBatch(PgPreparedStatement.java:1685)
	at app//com.zaxxer.hikari.pool.ProxyStatement.executeBatch(ProxyStatement.java:127)
	at app//com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeBatch(HikariProxyPreparedStatement.java)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.lambda$performExecution$2(BatchImpl.java:279)
	... 176 more
Caused by: org.postgresql.util.PSQLException: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80
	at app//org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2713)
	at app//org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2401)
	... 183 more

Check failure on line 104 in backend/data/src/main/kotlin/io/tolgee/service/contentDelivery/ContentDeliveryConfigService.kt

See this annotation in the file changed.

@github-actions github-actions / Backend Tests

io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest ► adds custom slug on update()

Failed test found in:
  backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest.xml
Error:
  org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:41.25+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',40,'TRUE','22a7d3fda66f4277f4052be04b00d3cf','.','FALSE','2024-05-06 10:24:41.25+00',1000071008) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
Raw output
org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:41.25+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',40,'TRUE','22a7d3fda66f4277f4052be04b00d3cf','.','FALSE','2024-05-06 10:24:41.25+00',1000071008) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.] [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]; SQL [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]
	at app//org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:256)
	at app//org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:229)
	at app//org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:550)
	at app//org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)
	at app//org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:243)
	at app//org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:135)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.repository.core.support.MethodInvocationValidator.invoke(MethodInvocationValidator.java:94)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:244)
	at app/jdk.proxy3/jdk.proxy3.$Proxy349.isSlugUnique(Unknown Source)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$generateSlug$1.invoke(ContentDeliveryConfigService.kt:104)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$generateSlug$1.invoke(ContentDeliveryConfigService.kt:103)
	at app//io.tolgee.util.SlugGenerator.generate(SlugGenerator.kt:45)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService.generateSlug(ContentDeliveryConfigService.kt:103)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
	at app//org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:699)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$$SpringCGLIB$$0.generateSlug(<generated>)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveContentDeliveryConfigs(TestDataService.kt:233)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveAllProjectDependants(TestDataService.kt:211)
	at app//io.tolgee.development.testDataBuilder.TestDataService.access$saveAllProjectDependants(TestDataService.kt:48)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveAllProjects$1$1.invoke(TestDataService.kt:381)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveAllProjects$1$1.invoke(TestDataService.kt:379)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$lambda$0(transactionUtil.kt:22)
	at app//org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:21)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$default(transactionUtil.kt:11)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:30)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveAllProjects(TestDataService.kt:379)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveProjectData(TestDataService.kt:165)
	at app//io.tolgee.development.testDataBuilder.TestDataService.access$saveProjectData(TestDataService.kt:48)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveTestData$3.invoke(TestDataService.kt:112)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveTestData$3.invoke(TestDataService.kt:111)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$lambda$0(transactionUtil.kt:22)
	at app//org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:21)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$default(transactionUtil.kt:11)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:30)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveTestData(TestDataService.kt:111)
	at jdk.internal.reflect.GeneratedMethodAccessor521.invoke(Unknown Source)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
	at app//org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
	at app//org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:391)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751)
	at app//org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)
	at app//io.tolgee.development.testDataBuilder.TestDataService$$SpringCGLIB$$0.saveTestData(<generated>)
	at app//io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest.setup(ContentDeliveryConfigControllerTest.kt:63)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
	at app//org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptLifecycleMethod(TimeoutExtension.java:128)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptBeforeEachMethod(TimeoutExtension.java:78)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)
	at app//org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeMethodInExtensionContext(ClassBasedTestDescriptor.java:520)
	at app//org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$synthesizeBeforeEachMethodAdapter$23(ClassBasedTestDescriptor.java:505)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeEachMethods$3(TestMethodTestDescriptor.java:174)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeMethodsOrCallbacksUntilExceptionOccurs$6(TestMethodTestDescriptor.java:202)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeMethodsOrCallbacksUntilExceptionOccurs(TestMethodTestDescriptor.java:202)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeEachMethods(TestMethodTestDescriptor.java:171)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:134)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at java.base@17.0.11/java.util.ArrayList.forEach(ArrayList.java:1511)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at java.base@17.0.11/java.util.ArrayList.forEach(ArrayList.java:1511)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
	at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
	at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
	at app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
	at app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
	at app//org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:119)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:94)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:89)
	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:62)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
	at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
	at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65)
	at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
	at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
Caused by: org.hibernate.exception.SQLGrammarException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:41.25+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',40,'TRUE','22a7d3fda66f4277f4052be04b00d3cf','.','FALSE','2024-05-06 10:24:41.25+00',1000071008) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.] [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]
	at app//org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:91)
	at app//org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:58)
	at app//org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:108)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.lambda$performExecution$2(BatchImpl.java:294)
	at app//org.hibernate.engine.jdbc.mutation.internal.PreparedStatementGroupSingleTable.forEachStatement(PreparedStatementGroupSingleTable.java:59)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.performExecution(BatchImpl.java:264)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.execute(BatchImpl.java:242)
	at app//org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.executeBatch(JdbcCoordinatorImpl.java:188)
	at app//org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:662)
	at app//org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:499)
	at app//org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:363)
	at app//org.hibernate.event.internal.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:61)
	at app//org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:127)
	at app//org.hibernate.internal.SessionImpl.autoFlushIfRequired(SessionImpl.java:1386)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.lambda$new$2(ConcreteSqmSelectQueryPlan.java:136)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.withCacheableSqmInterpretation(ConcreteSqmSelectQueryPlan.java:359)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.performList(ConcreteSqmSelectQueryPlan.java:300)
	at app//org.hibernate.query.sqm.internal.QuerySqmImpl.doList(QuerySqmImpl.java:509)
	at app//org.hibernate.query.spi.AbstractSelectionQuery.list(AbstractSelectionQuery.java:427)
	at app//org.hibernate.query.spi.AbstractSelectionQuery.getSingleResult(AbstractSelectionQuery.java:564)
	at app//org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:223)
	at app//org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:92)
	at app//org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:149)
	at app//org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:137)
	at app//org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:136)
	at app//org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:120)
	at app//org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:164)
	at app//org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:143)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:72)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
	at app//org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:391)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)
	... 144 more
Caused by: java.sql.BatchUpdateException: Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:41.25+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',40,'TRUE','22a7d3fda66f4277f4052be04b00d3cf','.','FALSE','2024-05-06 10:24:41.25+00',1000071008) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.
	at app//org.postgresql.jdbc.BatchResultHandler.handleError(BatchResultHandler.java:165)
	at app//org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2402)
	at app//org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:574)
	at app//org.postgresql.jdbc.PgStatement.internalExecuteBatch(PgStatement.java:896)
	at app//org.postgresql.jdbc.PgStatement.executeBatch(PgStatement.java:919)
	at app//org.postgresql.jdbc.PgPreparedStatement.executeBatch(PgPreparedStatement.java:1685)
	at app//com.zaxxer.hikari.pool.ProxyStatement.executeBatch(ProxyStatement.java:127)
	at app//com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeBatch(HikariProxyPreparedStatement.java)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.lambda$performExecution$2(BatchImpl.java:279)
	... 176 more
Caused by: org.postgresql.util.PSQLException: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80
	at app//org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2713)
	at app//org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2401)
	... 183 more

Check failure on line 104 in backend/data/src/main/kotlin/io/tolgee/service/contentDelivery/ContentDeliveryConfigService.kt

See this annotation in the file changed.

@github-actions github-actions / Backend Tests

io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest ► lists content delivery configs()

Failed test found in:
  backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest.xml
Error:
  org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:41.457+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',41,'TRUE','2ee0ee5a06ee07e1fec97453e2ad3497','.','FALSE','2024-05-06 10:24:41.457+00',1000071009) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
Raw output
org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:41.457+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',41,'TRUE','2ee0ee5a06ee07e1fec97453e2ad3497','.','FALSE','2024-05-06 10:24:41.457+00',1000071009) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.] [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]; SQL [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]
	at app//org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:256)
	at app//org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:229)
	at app//org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:550)
	at app//org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)
	at app//org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:243)
	at app//org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:135)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.repository.core.support.MethodInvocationValidator.invoke(MethodInvocationValidator.java:94)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:244)
	at app/jdk.proxy3/jdk.proxy3.$Proxy349.isSlugUnique(Unknown Source)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$generateSlug$1.invoke(ContentDeliveryConfigService.kt:104)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$generateSlug$1.invoke(ContentDeliveryConfigService.kt:103)
	at app//io.tolgee.util.SlugGenerator.generate(SlugGenerator.kt:45)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService.generateSlug(ContentDeliveryConfigService.kt:103)
	at jdk.internal.reflect.GeneratedMethodAccessor647.invoke(Unknown Source)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
	at app//org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:699)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$$SpringCGLIB$$0.generateSlug(<generated>)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveContentDeliveryConfigs(TestDataService.kt:233)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveAllProjectDependants(TestDataService.kt:211)
	at app//io.tolgee.development.testDataBuilder.TestDataService.access$saveAllProjectDependants(TestDataService.kt:48)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveAllProjects$1$1.invoke(TestDataService.kt:381)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveAllProjects$1$1.invoke(TestDataService.kt:379)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$lambda$0(transactionUtil.kt:22)
	at app//org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:21)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$default(transactionUtil.kt:11)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:30)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveAllProjects(TestDataService.kt:379)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveProjectData(TestDataService.kt:165)
	at app//io.tolgee.development.testDataBuilder.TestDataService.access$saveProjectData(TestDataService.kt:48)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveTestData$3.invoke(TestDataService.kt:112)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveTestData$3.invoke(TestDataService.kt:111)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$lambda$0(transactionUtil.kt:22)
	at app//org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:21)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$default(transactionUtil.kt:11)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:30)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveTestData(TestDataService.kt:111)
	at jdk.internal.reflect.GeneratedMethodAccessor521.invoke(Unknown Source)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
	at app//org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
	at app//org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:391)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751)
	at app//org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)
	at app//io.tolgee.development.testDataBuilder.TestDataService$$SpringCGLIB$$0.saveTestData(<generated>)
	at app//io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest.setup(ContentDeliveryConfigControllerTest.kt:63)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
	at app//org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptLifecycleMethod(TimeoutExtension.java:128)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptBeforeEachMethod(TimeoutExtension.java:78)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)
	at app//org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeMethodInExtensionContext(ClassBasedTestDescriptor.java:520)
	at app//org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$synthesizeBeforeEachMethodAdapter$23(ClassBasedTestDescriptor.java:505)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeEachMethods$3(TestMethodTestDescriptor.java:174)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeMethodsOrCallbacksUntilExceptionOccurs$6(TestMethodTestDescriptor.java:202)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeMethodsOrCallbacksUntilExceptionOccurs(TestMethodTestDescriptor.java:202)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeEachMethods(TestMethodTestDescriptor.java:171)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:134)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at java.base@17.0.11/java.util.ArrayList.forEach(ArrayList.java:1511)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at java.base@17.0.11/java.util.ArrayList.forEach(ArrayList.java:1511)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
	at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
	at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
	at app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
	at app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
	at app//org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:119)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:94)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:89)
	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:62)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
	at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
	at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65)
	at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
	at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
Caused by: org.hibernate.exception.SQLGrammarException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:41.457+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',41,'TRUE','2ee0ee5a06ee07e1fec97453e2ad3497','.','FALSE','2024-05-06 10:24:41.457+00',1000071009) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.] [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]
	at app//org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:91)
	at app//org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:58)
	at app//org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:108)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.lambda$performExecution$2(BatchImpl.java:294)
	at app//org.hibernate.engine.jdbc.mutation.internal.PreparedStatementGroupSingleTable.forEachStatement(PreparedStatementGroupSingleTable.java:59)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.performExecution(BatchImpl.java:264)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.execute(BatchImpl.java:242)
	at app//org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.executeBatch(JdbcCoordinatorImpl.java:188)
	at app//org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:662)
	at app//org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:499)
	at app//org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:363)
	at app//org.hibernate.event.internal.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:61)
	at app//org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:127)
	at app//org.hibernate.internal.SessionImpl.autoFlushIfRequired(SessionImpl.java:1386)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.lambda$new$2(ConcreteSqmSelectQueryPlan.java:136)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.withCacheableSqmInterpretation(ConcreteSqmSelectQueryPlan.java:359)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.performList(ConcreteSqmSelectQueryPlan.java:300)
	at app//org.hibernate.query.sqm.internal.QuerySqmImpl.doList(QuerySqmImpl.java:509)
	at app//org.hibernate.query.spi.AbstractSelectionQuery.list(AbstractSelectionQuery.java:427)
	at app//org.hibernate.query.spi.AbstractSelectionQuery.getSingleResult(AbstractSelectionQuery.java:564)
	at app//org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:223)
	at app//org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:92)
	at app//org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:149)
	at app//org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:137)
	at app//org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:136)
	at app//org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:120)
	at app//org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:164)
	at app//org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:143)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:72)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
	at app//org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:391)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)
	... 143 more
Caused by: java.sql.BatchUpdateException: Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:41.457+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',41,'TRUE','2ee0ee5a06ee07e1fec97453e2ad3497','.','FALSE','2024-05-06 10:24:41.457+00',1000071009) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.
	at app//org.postgresql.jdbc.BatchResultHandler.handleError(BatchResultHandler.java:165)
	at app//org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2402)
	at app//org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:574)
	at app//org.postgresql.jdbc.PgStatement.internalExecuteBatch(PgStatement.java:896)
	at app//org.postgresql.jdbc.PgStatement.executeBatch(PgStatement.java:919)
	at app//org.postgresql.jdbc.PgPreparedStatement.executeBatch(PgPreparedStatement.java:1685)
	at app//com.zaxxer.hikari.pool.ProxyStatement.executeBatch(ProxyStatement.java:127)
	at app//com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeBatch(HikariProxyPreparedStatement.java)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.lambda$performExecution$2(BatchImpl.java:279)
	... 175 more
Caused by: org.postgresql.util.PSQLException: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80
	at app//org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2713)
	at app//org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2401)
	... 182 more

Check failure on line 104 in backend/data/src/main/kotlin/io/tolgee/service/contentDelivery/ContentDeliveryConfigService.kt

See this annotation in the file changed.

@github-actions github-actions / Backend Tests

io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest ► creates content delivery config without pruning()

Failed test found in:
  backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest.xml
Error:
  org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:41.658+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',42,'TRUE','bb8afd3bad47b54d91e481d36a04dacc','.','FALSE','2024-05-06 10:24:41.658+00',1000071010) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
Raw output
org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:41.658+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',42,'TRUE','bb8afd3bad47b54d91e481d36a04dacc','.','FALSE','2024-05-06 10:24:41.658+00',1000071010) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.] [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]; SQL [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]
	at app//org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:256)
	at app//org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:229)
	at app//org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:550)
	at app//org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)
	at app//org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:243)
	at app//org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:135)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.repository.core.support.MethodInvocationValidator.invoke(MethodInvocationValidator.java:94)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:244)
	at app/jdk.proxy3/jdk.proxy3.$Proxy349.isSlugUnique(Unknown Source)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$generateSlug$1.invoke(ContentDeliveryConfigService.kt:104)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$generateSlug$1.invoke(ContentDeliveryConfigService.kt:103)
	at app//io.tolgee.util.SlugGenerator.generate(SlugGenerator.kt:45)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService.generateSlug(ContentDeliveryConfigService.kt:103)
	at jdk.internal.reflect.GeneratedMethodAccessor647.invoke(Unknown Source)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
	at app//org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:699)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$$SpringCGLIB$$0.generateSlug(<generated>)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveContentDeliveryConfigs(TestDataService.kt:233)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveAllProjectDependants(TestDataService.kt:211)
	at app//io.tolgee.development.testDataBuilder.TestDataService.access$saveAllProjectDependants(TestDataService.kt:48)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveAllProjects$1$1.invoke(TestDataService.kt:381)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveAllProjects$1$1.invoke(TestDataService.kt:379)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$lambda$0(transactionUtil.kt:22)
	at app//org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:21)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$default(transactionUtil.kt:11)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:30)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveAllProjects(TestDataService.kt:379)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveProjectData(TestDataService.kt:165)
	at app//io.tolgee.development.testDataBuilder.TestDataService.access$saveProjectData(TestDataService.kt:48)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveTestData$3.invoke(TestDataService.kt:112)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveTestData$3.invoke(TestDataService.kt:111)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$lambda$0(transactionUtil.kt:22)
	at app//org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:21)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$default(transactionUtil.kt:11)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:30)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveTestData(TestDataService.kt:111)
	at jdk.internal.reflect.GeneratedMethodAccessor521.invoke(Unknown Source)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
	at app//org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
	at app//org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:391)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751)
	at app//org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)
	at app//io.tolgee.development.testDataBuilder.TestDataService$$SpringCGLIB$$0.saveTestData(<generated>)
	at app//io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest.setup(ContentDeliveryConfigControllerTest.kt:63)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
	at app//org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptLifecycleMethod(TimeoutExtension.java:128)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptBeforeEachMethod(TimeoutExtension.java:78)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)
	at app//org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeMethodInExtensionContext(ClassBasedTestDescriptor.java:520)
	at app//org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$synthesizeBeforeEachMethodAdapter$23(ClassBasedTestDescriptor.java:505)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeEachMethods$3(TestMethodTestDescriptor.java:174)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeMethodsOrCallbacksUntilExceptionOccurs$6(TestMethodTestDescriptor.java:202)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeMethodsOrCallbacksUntilExceptionOccurs(TestMethodTestDescriptor.java:202)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeEachMethods(TestMethodTestDescriptor.java:171)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:134)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at java.base@17.0.11/java.util.ArrayList.forEach(ArrayList.java:1511)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at java.base@17.0.11/java.util.ArrayList.forEach(ArrayList.java:1511)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
	at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
	at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
	at app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
	at app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
	at app//org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:119)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:94)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:89)
	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:62)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
	at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
	at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65)
	at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
	at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
Caused by: org.hibernate.exception.SQLGrammarException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:41.658+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',42,'TRUE','bb8afd3bad47b54d91e481d36a04dacc','.','FALSE','2024-05-06 10:24:41.658+00',1000071010) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.] [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]
	at app//org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:91)
	at app//org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:58)
	at app//org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:108)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.lambda$performExecution$2(BatchImpl.java:294)
	at app//org.hibernate.engine.jdbc.mutation.internal.PreparedStatementGroupSingleTable.forEachStatement(PreparedStatementGroupSingleTable.java:59)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.performExecution(BatchImpl.java:264)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.execute(BatchImpl.java:242)
	at app//org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.executeBatch(JdbcCoordinatorImpl.java:188)
	at app//org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:662)
	at app//org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:499)
	at app//org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:363)
	at app//org.hibernate.event.internal.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:61)
	at app//org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:127)
	at app//org.hibernate.internal.SessionImpl.autoFlushIfRequired(SessionImpl.java:1386)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.lambda$new$2(ConcreteSqmSelectQueryPlan.java:136)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.withCacheableSqmInterpretation(ConcreteSqmSelectQueryPlan.java:359)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.performList(ConcreteSqmSelectQueryPlan.java:300)
	at app//org.hibernate.query.sqm.internal.QuerySqmImpl.doList(QuerySqmImpl.java:509)
	at app//org.hibernate.query.spi.AbstractSelectionQuery.list(AbstractSelectionQuery.java:427)
	at app//org.hibernate.query.spi.AbstractSelectionQuery.getSingleResult(AbstractSelectionQuery.java:564)
	at app//org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:223)
	at app//org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:92)
	at app//org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:149)
	at app//org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:137)
	at app//org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:136)
	at app//org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:120)
	at app//org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:164)
	at app//org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:143)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:72)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
	at app//org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:391)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)
	... 143 more
Caused by: java.sql.BatchUpdateException: Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:41.658+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',42,'TRUE','bb8afd3bad47b54d91e481d36a04dacc','.','FALSE','2024-05-06 10:24:41.658+00',1000071010) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.
	at app//org.postgresql.jdbc.BatchResultHandler.handleError(BatchResultHandler.java:165)
	at app//org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2402)
	at app//org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:574)
	at app//org.postgresql.jdbc.PgStatement.internalExecuteBatch(PgStatement.java:896)
	at app//org.postgresql.jdbc.PgStatement.executeBatch(PgStatement.java:919)
	at app//org.postgresql.jdbc.PgPreparedStatement.executeBatch(PgPreparedStatement.java:1685)
	at app//com.zaxxer.hikari.pool.ProxyStatement.executeBatch(ProxyStatement.java:127)
	at app//com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeBatch(HikariProxyPreparedStatement.java)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.lambda$performExecution$2(BatchImpl.java:279)
	... 175 more
Caused by: org.postgresql.util.PSQLException: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80
	at app//org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2713)
	at app//org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2401)
	... 182 more

Check failure on line 104 in backend/data/src/main/kotlin/io/tolgee/service/contentDelivery/ContentDeliveryConfigService.kt

See this annotation in the file changed.

@github-actions github-actions / Backend Tests

io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest ► publishes to default server content delivery config()

Failed test found in:
  backend/app/build/test-results/runContextRecreatingTests/TEST-io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest.xml
Error:
  org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:41.854+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',43,'TRUE','9f5acdfcbf15d9e7ca989f90cdbdbe0a','.','FALSE','2024-05-06 10:24:41.854+00',1000071011) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
Raw output
org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:41.854+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',43,'TRUE','9f5acdfcbf15d9e7ca989f90cdbdbe0a','.','FALSE','2024-05-06 10:24:41.854+00',1000071011) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.] [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]; SQL [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]
	at app//org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:256)
	at app//org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:229)
	at app//org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:550)
	at app//org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)
	at app//org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:243)
	at app//org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:135)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.repository.core.support.MethodInvocationValidator.invoke(MethodInvocationValidator.java:94)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:244)
	at app/jdk.proxy3/jdk.proxy3.$Proxy349.isSlugUnique(Unknown Source)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$generateSlug$1.invoke(ContentDeliveryConfigService.kt:104)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$generateSlug$1.invoke(ContentDeliveryConfigService.kt:103)
	at app//io.tolgee.util.SlugGenerator.generate(SlugGenerator.kt:45)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService.generateSlug(ContentDeliveryConfigService.kt:103)
	at jdk.internal.reflect.GeneratedMethodAccessor647.invoke(Unknown Source)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
	at app//org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:699)
	at app//io.tolgee.service.contentDelivery.ContentDeliveryConfigService$$SpringCGLIB$$0.generateSlug(<generated>)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveContentDeliveryConfigs(TestDataService.kt:233)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveAllProjectDependants(TestDataService.kt:211)
	at app//io.tolgee.development.testDataBuilder.TestDataService.access$saveAllProjectDependants(TestDataService.kt:48)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveAllProjects$1$1.invoke(TestDataService.kt:381)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveAllProjects$1$1.invoke(TestDataService.kt:379)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$lambda$0(transactionUtil.kt:22)
	at app//org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:21)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$default(transactionUtil.kt:11)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:30)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveAllProjects(TestDataService.kt:379)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveProjectData(TestDataService.kt:165)
	at app//io.tolgee.development.testDataBuilder.TestDataService.access$saveProjectData(TestDataService.kt:48)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveTestData$3.invoke(TestDataService.kt:112)
	at app//io.tolgee.development.testDataBuilder.TestDataService$saveTestData$3.invoke(TestDataService.kt:111)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$lambda$0(transactionUtil.kt:22)
	at app//org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:21)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction$default(transactionUtil.kt:11)
	at app//io.tolgee.util.TransactionUtilKt.executeInNewTransaction(transactionUtil.kt:30)
	at app//io.tolgee.development.testDataBuilder.TestDataService.saveTestData(TestDataService.kt:111)
	at jdk.internal.reflect.GeneratedMethodAccessor521.invoke(Unknown Source)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
	at app//org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
	at app//org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:391)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:751)
	at app//org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:703)
	at app//io.tolgee.development.testDataBuilder.TestDataService$$SpringCGLIB$$0.saveTestData(<generated>)
	at app//io.tolgee.api.v2.controllers.contentDelivery.ContentDeliveryConfigControllerTest.setup(ContentDeliveryConfigControllerTest.kt:63)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at app//org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
	at app//org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptLifecycleMethod(TimeoutExtension.java:128)
	at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptBeforeEachMethod(TimeoutExtension.java:78)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
	at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)
	at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)
	at app//org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeMethodInExtensionContext(ClassBasedTestDescriptor.java:520)
	at app//org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$synthesizeBeforeEachMethodAdapter$23(ClassBasedTestDescriptor.java:505)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeEachMethods$3(TestMethodTestDescriptor.java:174)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeBeforeMethodsOrCallbacksUntilExceptionOccurs$6(TestMethodTestDescriptor.java:202)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeMethodsOrCallbacksUntilExceptionOccurs(TestMethodTestDescriptor.java:202)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeBeforeEachMethods(TestMethodTestDescriptor.java:171)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:134)
	at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at java.base@17.0.11/java.util.ArrayList.forEach(ArrayList.java:1511)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at java.base@17.0.11/java.util.ArrayList.forEach(ArrayList.java:1511)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
	at app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
	at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
	at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
	at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
	at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
	at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
	at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
	at app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
	at app//org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
	at app//org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:119)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:94)
	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:89)
	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:62)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base@17.0.11/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base@17.0.11/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base@17.0.11/java.lang.reflect.Method.invoke(Method.java:568)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
	at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100)
	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60)
	at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113)
	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65)
	at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69)
	at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74)
Caused by: org.hibernate.exception.SQLGrammarException: could not execute batch [Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:41.854+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',43,'TRUE','9f5acdfcbf15d9e7ca989f90cdbdbe0a','.','FALSE','2024-05-06 10:24:41.854+00',1000071011) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.] [insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)]
	at app//org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:91)
	at app//org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:58)
	at app//org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:108)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.lambda$performExecution$2(BatchImpl.java:294)
	at app//org.hibernate.engine.jdbc.mutation.internal.PreparedStatementGroupSingleTable.forEachStatement(PreparedStatementGroupSingleTable.java:59)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.performExecution(BatchImpl.java:264)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.execute(BatchImpl.java:242)
	at app//org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.executeBatch(JdbcCoordinatorImpl.java:188)
	at app//org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:662)
	at app//org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:499)
	at app//org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:363)
	at app//org.hibernate.event.internal.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:61)
	at app//org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:127)
	at app//org.hibernate.internal.SessionImpl.autoFlushIfRequired(SessionImpl.java:1386)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.lambda$new$2(ConcreteSqmSelectQueryPlan.java:136)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.withCacheableSqmInterpretation(ConcreteSqmSelectQueryPlan.java:359)
	at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.performList(ConcreteSqmSelectQueryPlan.java:300)
	at app//org.hibernate.query.sqm.internal.QuerySqmImpl.doList(QuerySqmImpl.java:509)
	at app//org.hibernate.query.spi.AbstractSelectionQuery.list(AbstractSelectionQuery.java:427)
	at app//org.hibernate.query.spi.AbstractSelectionQuery.getSingleResult(AbstractSelectionQuery.java:564)
	at app//org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:223)
	at app//org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:92)
	at app//org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:149)
	at app//org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:137)
	at app//org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:136)
	at app//org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:120)
	at app//org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:164)
	at app//org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:143)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:72)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
	at app//org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:391)
	at app//org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
	at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
	at app//org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)
	... 143 more
Caused by: java.sql.BatchUpdateException: Batch entry 0 insert into content_delivery_config (content_storage_id,created_at,custom_slug,file_structure_template,filter_key_id,filter_key_id_not,filter_key_prefix,filter_namespace,filter_state,filter_tag,filter_tag_in,filter_tag_not_in,format,languages,last_published,message_format,name,project_id,prune_before_publish,slug,structure_delimiter,support_arrays,updated_at,id) values (NULL,'2024-05-06 10:24:41.854+00','FALSE',NULL,NULL,NULL,NULL,NULL,'["TRANSLATED","REVIEWED"]',NULL,NULL,NULL,0,NULL,NULL,NULL,'Default server',43,'TRUE','9f5acdfcbf15d9e7ca989f90cdbdbe0a','.','FALSE','2024-05-06 10:24:41.854+00',1000071011) was aborted: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80  Call getNextException to see other errors in the batch.
	at app//org.postgresql.jdbc.BatchResultHandler.handleError(BatchResultHandler.java:165)
	at app//org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2402)
	at app//org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:574)
	at app//org.postgresql.jdbc.PgStatement.internalExecuteBatch(PgStatement.java:896)
	at app//org.postgresql.jdbc.PgStatement.executeBatch(PgStatement.java:919)
	at app//org.postgresql.jdbc.PgPreparedStatement.executeBatch(PgPreparedStatement.java:1685)
	at app//com.zaxxer.hikari.pool.ProxyStatement.executeBatch(ProxyStatement.java:127)
	at app//com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeBatch(HikariProxyPreparedStatement.java)
	at app//org.hibernate.engine.jdbc.batch.internal.BatchImpl.lambda$performExecution$2(BatchImpl.java:279)
	... 175 more
Caused by: org.postgresql.util.PSQLException: ERROR: column "file_structure_template" of relation "content_delivery_config" does not exist
  Position: 80
	at app//org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2713)
	at app//org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2401)
	... 182 more